On another point: I'm increasingly intrigued by the idea of having something like IPython (or perhaps, IPython itself) be used as your command-line shell. Right now it's possible, but in a bit of a long-winded way. I think this is a matter worth looking a little more into.
How is it long-winded? Basic operations such as cd, ls, etc., all work inside IPython.
Also, try envoy[0] for subprocesses.
However, still I wonder if that's enough. I mean, I can imagine that could get annoying really fast considering ! is a little tough to get to on the keyboard. Maybe a modal switch (a la vim, a mode for full blown shell, a mode with IPython being normal IPython) is a good option.
I really hope something like this eventually works out. Command-line shells seem too much like relics of the past, they can stand to be improved with some of the new UI sensibilities. IPython is one thing I can think of that is poised to fit and interact well with shells.
Check that out, I think that's along the lines you are thinking.