Most of my tools are TUI really, because its much esier to develop. Code reusability is huge. You wrote some nice interactive TList class? Cool, you can reuse it easly in other TUI projects.
Today world is a bit multitasking, so having TUI based Desktop is very limiting imo. Yeah, distractions.. Thats I think personal thing. I run old OS with 4 virtual desktops because one desktop is not really enough. Desktop 1 is generic. Desktop 2 is work. Desktop 3 is usually some Network Simulations I do. Desktop 2 and 3 usually have their own Xserver running, displaying stuff from remote servers. So, leaving GUI is not an option. Just use it smartly :)
And yeah, I use ViM ether in terminal or gViM (native Win32).