C2 doesn't prevent it, it just wasn't designed to do it. This would have to be done by either modifying C2's runtime (which I'd leave to Ashley if it was ever to be added) or run custom webgl from a plugin's drawgl function.
To do it it would basically just require you to set a uniform after an effect was made active. There isn't a spot you can do that in conjunction with C2's effect rendering code.
That said you can do anything in the drawgl function in plugins, you just need to restore any webgl state changes before exiting the function. The idea is you'd bypass c2's system for using effects and doing it manually.