I think we can assume that it will keep working in future versions of cmd.exe, as MS won't break backwards compatibility here, and it seems to be a consequence of documented parsing rules. But yes, it would be great to just skip the shell. I don't think we should replace it either. Lisp should always pass an argument list when creating a process.