how about using a wrapper script, to which you would supply the value as parameter
so you would just use runCommand "thescript <envval> <rest of parameters>" ?

Herein lies the problem: I have a program that accepts complete commands from a file and executes them. It works perfectly. And now I'd just like to set an environment variable while each command runs... But alas no, the only way to do that is with runProcess, which expects me to parse the command line first. (Before anybody remarks that "words" will do this, consider the "echo" command, which treats whitespace meaningfully.)

on windows, echo is just a shell command, not executable, so it gets special treatment.