if a surface normal is readily available, early culling takes only 3 mults to evaluate if that surface is frontfacing.
some tests i've made show that opengl don't perform early culling, here i mean face culling in object space.
in fact, opengl can't just know if the normal i'm supplying is the normal to a face or the normal to a vertex...
i would be useful to have it at driver-level, with a function call like glEnable(GL_EARLY_CULL_FACE)
it think it shoud be inserted as another step into the opengl pipeline, to make it work also with display lists and vertex arrays.