Turns out the exec in cmd_exec.c has absolutely zero reason to be different from what engine does.
This small patch moves a bit of code around, so that all execv() consumers benefit from the same optimisation (namely, no extra shell when not needed). The only visible change should be that now, VAR!=cmd *will* display some relevant information if exec fails. This is a fairly trivial change, I don't expect any fallout. (still need to run it through tests)