putenv is supposed to be reset. It only has effect for the current process, and any child processes it might start (and not even those, depending on how you start them). Of all OSes only DOS allowed a program to modify the global environment, and that was compiler-dependent and probably a bug (but who cared? You'd reboot anyway for the next game, since it wanted other memory managers, other drivers, ... 😀 ).
The app is supposed to use putenv for it's own configuration only, which is reasonable and works very well. Look at the SDL docs, it is even documented (although, as I already mentioned, few people seem to notice that passage).
The only gotcha might be that switching SDL_VIDEODRIVER needs a SDL_QuitSubSystem/SDL_InitSubSystem(SDL_INIT_VIDEO) cycle, but that is manageable (and works - the DosBox version of OpenGL-HQ does that, too).
Patching DosBox to support the SDL variant of OpenGL-HQ would probably mean a 10-line patch. I didn't do it yet, since in the current state, it's far from getting into offical releases (remember that the 1.3 branch of SDL is not scheduled for any release yet), so it's something for insiders anyways. Of course, if someone compiled a nice SDL.DLL and shipped a dosbox.exe with a batch file for openglhq, he'd do me a favour *hint* 😀