It would be nice if you could cons to an alist and have that alist be used to initialize the environment for the program (without changing the environment variables of the Lisp environment).
E.g.
(let ((*cmd-env* (acons "DEBUG" "1" *env*)))
(values (getenv "DEBUG")
($cmd "bash -c 'echo $DEBUG'")))
=> NIL, "1"
This would be easy to do just for Unix, but Windows is harder.