I hardly see how your patch is related to the problem that your GPU does not support more than 6 texture units (which a Wikipedia search confirmed for me).
What I suppose is that, because of this limitation, the calls to glActiveTexture(GL_TEXTURE6) and glActiveTexture(GL_TEXTURE7) trigger an OpenGL error and do not have any effect.
As a consequence, subsequent calls to setup the texture properties (glBindTexture(), etc) affect the last texture unit that was bound (last glActiveTexture() call that succeeded) instead of the correct one, leading to an incorrect rendering.
The documentation of Irrlicht states;
ECM_DIFFUSE_AND_AMBIENT
Use vertex color for both diffuse and ambient light.
which matches the glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE) OpenGL call.
That means, with your patch, the default ECM_DIFFUSE value is probably used. This makes the ambient part of the lighting depend on the material properties (glMaterialfv(), SMaterial member values) instead of the vertex colors (glColor()).
I don't see how this is related...
On your remarks on ApiTrace: this project is one of the very rare valuable open source debugging utilities there is around. Sure, proprietary driver developers have better tools, and it's not meant primarily for driver developers but for application developers. Nevertheless, being able to record and replay a stream of OpenGL calls that does not trigger the correct behavior is useful for driver developers as well, IMHO.
maybe VBO also not working corectly somehow because skid marks interfere with lights, etc.
I fail to see the link between VBOs and lighting...?
For hardware drivers there are always solutions and fixes around OpenGL specification. That is called - implementation. So in practice people just follow some of usefull enough implementation. Nvidia implementation, AMD implementation, Mesa/DRI implementation, etc.
I don't understand your point here... An OpenGL implementation, be it hardware or software, HAS to follow the OpenGL spec. Having a different behavior is to be considered a bug.
So in apitrace tests all drivers will fail somewhere, but in practice they always have solutions & fixes - so they works
What do you mean by "fail in ApiTrace"?