The whole idea of making interaction harder via command line irregularities w.r.t usage is incredibly stupid. Windows powershell has somewhat of a good idea by using object pipes formating is eliminated; a better idea would be to extend this system wide and 'pipe' even UI's to different formats such as javascript + markup or terminal output, this would require something completely different from unix, linux or windows.
Powershell is a good scripting environment, but is a lousy interactive shell. And is is exactly _because_ it pipes objects instead of text.
When plain text is being passed around, one can build a pipe incrementally and immediately see what the input to the next command is and decide what to do with it. With powershell one has to constantly check the properties of the objects.
It is faster to do a 'some -command | grep foo' than 'some -command | Where { $_.SomeProperty -match "foo"}'.
Do this now format it for another command and another and another, non-object pipes are good for one-offs and anything that doesn't require structure (which almost everything beyond interactive use does). Syntactic arguments are moot if the language was a property of the operating system itself (vm based) the syntax differences would mean nothing.