For programming, I agree. However, Python doesn't work as a system shell; for that, you want something optimized for running commands, without having to wrap them in a function call with a list of arguments as strings.
Drive-by armchair comment: it seems like the obvious answer would be to change the prompt depending on what mode you're in?
Xonsh lets you freely mix python code and command invocations in a highly transparent way.