At times I wonder if command line arguments are half thought surrogates for a small interpreter in the standard library.
I wonder how life would be if every single command would implement his own mini language and exec() would take a string to be interpreted instead of an array of... arguments.
Such interpreter would likely be a sort of lisp (but veeery minimal..), and probably so would be the shell (but a bit more powerful).
Such approach would have interesting impacts on command line programs and general terminal UX.
I would not expect much fuss for such change kernel side.
I wonder if anybody else explored such approach (except on Lisp Machines, obviously)