Many CLI programs are written to be used by other CLI programs, which is considerably more difficult when the the primary interface to the program is a GUI. If you keep the interface simple and textual, though, you can still write a GUI wrapper.
Too true, RegEx Buddy certainly helps me with regex's but it doesn't help me get them into any other app where I actually use regexs. To me GUIs are REPL while CLI is compile and wait. CLI is much faster(especially if you know what you are doing) at the end of the day but when I don't have a clue as to what I am doing(most of the time) large buttons that say try this and try that allow for experimentation with immediate feedback,with the caveat that it doesn't lend itself to integration.
I think that we're talking past each other - I'm talking about expressiveness (once you know the system, you can easily ask the right questions and get rapid, informative feedback), while you're talking about discoverable interfaces (if you've never used it before, can you figure it out?). There's a certain point past which having a discoverable interface is overrated. Complaining about a system advanced as (say) AutoCAD not being intuitive is a bit silly, IMHO.
drscheme, allegro lisp,squeak,dolphin smalltalk,idle. Most of the REPLs I use aren't CLI and are the better for it. I certainly don't see this as a discoverable vs expressive debate. It is expressive(the app) vs expressive(the user) debate. A GUI allows the App to be more expressive. CLI has only one way of expressing anything to the user, slabs of text.