Jokes aside, do you understand the architecture of a system better from a diagram than from a 2 page description?
But you do switch how your mouth is working when switching between eating and drinking. In one, you masticate and move food around your mouth before swallowing once (maybe twice), whereas the other involves directing fluids back to your throat which acts in a near-continuous swallowing action.
> You have to remember so many key combinations and commands
They become muscle memory after an admittedly non-trivial amount of use. Yes, it is an investment in your future usage of that tool.
And to be fair, you had to memorize C-x, C-c, and C-v at one point too.
You might be surprised. Maybe not quite the level of a true "reflex", but it can get close. I find I not infrequently get weird compile/test/spellcheck errors when I'm not using vim and go back to find a string of vi keystrokes in the middle of my document that I typed without consciously realizing.
Not being destructive of user input, for starters.
Visual editors assign various non-editing tasks to command sequences as well. Pycharm moves the cursor around parenthesis with C-m for example, Cmd-M minimizes windows, and Cmd-I does formatting.
No applications running in the terminal will be able to tell the difference between these two different key presses.
Anyways, I don't think such behavior is inherent to "the console", only Linux's particular implementation (i.e. it's tty's fault) which admittedly is pretty outdated and relies a bit too much on control characters.
IMHO the original question still stands:
> What would a GUI bring to this that isn't possible in the console?
In my experience text mode brings a lot that GUIs don't, and not the other way around.
Plus it's easier to make a GUI wrapper for a console program than a console wrapper for a GUI program.
I also absolutely agree that this is the correct way for an editor to be implemented.
Granted, it won't support using variable-width fonts as-is; but that's never been a problem for me.