In my experience sticking to function not deprecated in core context with GL 3.1 is a good way to avoid issue with Intel drivers on Windows.
Not necessarily using 3.0 or 3.1 features, rather using #version 130 in glsl shaders without built in vertex attrib (like glNormalPointer) or uniforms (gl_ModelViewMatrix) and removing fixed functions.
As far as I can see most gl calls are gathered in ivis_opengl. There are some calls in bridge.cpp too but I think it's never called.
Fixed function I found are glFog* (in shader mixing fragColor with fogcolor and factor exp(-gl_FragDepth) should work) , glHint, glEnableClientState, glColor*, glDisable(GL_ALPHA_TEST) (discard in shader), GL_QUADS* (use 2 GL_TRIANGLES or GL_TRIANGLE_STRIP), glGetLight*, glPushMatrix, glPopMatrix, glEnable(GL_LIGHT0), glPushAttrib, and the glVertex3f glTexCoord2f glBegin glEnd.
There also quesoglc which use a lot of fixed functions too.
Normally compat with GL 2.1 is kept while enabling support for core context. The added benefits of core context is that it works with every OpenGL debugger (RenderDoc, nvidia nsight, AMD GPU Perf Studio 2, Intel GPA...)