I first spotted a common trade-off as I transitioned from CUI to GUI's in the early 90's (such as going from DOS to Windows, but I also used mini-computers). GUI's are in generally easier to learn and more intuitive. However, a keyboard-centric approach probably has the maximum efficiency potential, but takes longer to master.
Gearing the keyboard shortcuts around the GUI is probably going to not be as efficient as designing around the keyboard first and GUI second. For example, building around the GUI might first require going through a menu whereas a CUI may have a direct command. CUI keystrokes tend to be shaped by usage frequency, not grouping of similar items, which GUI's encourage.
There still might be shortcuts for common behaviors, but they won't necessarily match the GUI menus, meaning a violation of design OnceAndOnlyOnce. Thus, having both creates a kind of duplication ugliness. And, this is assuming they don't conflict with each other. I've found that in tools that let me map keyboard shortcuts to my favorite commands and key-stroke sequences, most are already taken up, often due to de-facto standards, such as Ctrl-B for "bold", eating up a good portion.
A tool could let one remap every potential key combo, but vendors are often too lazy to implement such an engine properly; and further when new versions come out or you move jobs or computers, you often have to start from scratch setting them up. Ideally a text or markup file would define your custom mappings, but vendors shun these, perhaps because of the implementation costs and the potential for confusing one's self and generating help-desk calls.
--top
Long ago I used an editor IBM provided for the S/9000 computer (and I think MS/PC-DOS) called PE ('Personal Editor') where every key-combination (ex. key with optional Ctrl/Alt/Shift) was mappable to one of the available editor commands. Most of the keys were mapped simply to the command to emit that particular character, but there was no fundamental difference between "put 'a' at the cursor location" and "save the file". It was kind of cool and powerful, but nowadays I'm just as happy to use the platform-standard key-mappings... - GeoffSobering
Update: I see it's still available at http://www.pe32.com/
One of these days I'm gonna make my own code editor with key-strokes and abstractions that fit my own head, my own fingers, and own coding techniques. If anyone knows of a kit that can act as the starting point, doesn't pre-hog the common key-strokes, and uses an algol-influenced programming language, not lisp, I'd like to take a look. My fingers only have a few good years left on them such that I'll need something to stay in the biz. -t
Check out TextAdept - has both GUI and console UI and uses LuaLanguage for extension.
See also: ExBaseRant (example CUI's)