Harri, our new developer CoolBreeze/Rexhunter is already doing that, she sent a commit last night that actually fixed our client so the deprecated functions are no longer usable. I am writing device manager interfaces for the fixed function pipeline, as I committed earlier today for Direct3D9 as directed by the DX SDK manual because render states such as fog are not memorized between Begin/End scene calls and internal state blocks are shitty as fuck and a part of the ffp, I have to do the one for OpenGL before we can rewrite the ffp with GLSL. Basically this interface handles global batching, state management to minize not only bindings but other interference with the GPU such as shader and sampler changes, and of course, makes it real easy to replace the whole ffp.
So just hold off a bit on that Harri until I write OpenGL's device manager. Also, I am going to throw a similar system to your global 2D batcher into OpenGL 1 and it will use vertex arrays, everything will in OpenGL 1, that is why I changed it to 1.1, it makes it a lot easier to manage the data and have the graphics systems pretty similar, people with really old hardware always have at least Direct3D 9 support even back on XP anyways. But at any rate my device manager got unnecessary state changes to Direct3D 9.0 down to absolutely 0 in a few games I tested.
Also Harri if you could run that cubes demo from Studio I compiled and got fully working exactly the same now and tell me your performance in RAM and CPU usage as well as framerate, that would be awesome, so far people have been reporting the ENIGMA compiled versions running up to 100fps faster with anti-aliasing.
https://www.dropbox.com/s/1l32ipnapkvlene/CubesDemo.zip