Well, the best you can do would be an object-oriented encapsulation for the renderer so that you can actually swap the whole implementation during initialisation and don't have to clutter the code with conditionals on cvars. This is more or less what the id dev did for his Vulkan renderer for Doom3 BFG. It would also give us a fairly clean way to implement a base GL3 renderer and then an optional GL4 renderer on top of that if the hardware supports it. This is the direction I would probably favour if I refactor my GL4 experiments for a future TDM integration.
As for the old renderer: I think I would favour the approach to develop the new renderer on a separate branch or Github until it is basically feature-complete, and then merge it back to trunk to replace the old renderer, instead of having both renderers side by side for an unspecified amount of time. This is only going to complicate testing, and when the new renderer is "ready", maintaining both becomes difficult, anyway. For example, any custom shader for fan missions would have to be implemented for both, which does not seem like an appealing prospect.
But anyway, this is all far in the future and will require some careful planning at the appropriate time. Let's concentrate on 2.07, first 