Applying custom variables to the environment is something we moved away from around December/January. The main reason was being efficiency (4x overall speedup). In the old days, all custom vars were applied to the environment (possibly overwriting existing variables!) by the compiler plugin and then the macros manager read them back one by one to replace the paths. Generally applying all variables to the environment again does not seem like a good idea to me.
As it happens, you already asked for the same thing in January (regarding the QNX compiler), and I proposed a simple scheme for applying certain variables to the environment on January 26, but nobody seemed to like it. I remember it was even called a "hack" (which it wasn't).
Anyway, since nobody liked my idea and everyone wanted a fancy GUI solution and extra state being written to the project file, I said to myself "Very well, I care not. Let's see who comes up with an implementation then."
A possible issue with your patch may be that you modify the compiler plugin which could soon be widely obsoleted.
Also (though I believe no harm is taken) the constraint "only defined for the compiler" may not be achieveable, since the new compiler framework does not know what a compiler is, it only knows stages.
Something that could indeed work fine might be adding an option to define per-compiler environment variables independently of custom vars. You never change those variables anyway, right?
EDIT: Aha, I see you found that old post, too