glPolygonOffset is allowed to be implementation-dependent and shouldn't be considered a general purpose "z-fighting fix". See http://www.opengl.org/sdk/docs/man/xhtml/glPolygonOffset.xml
Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.
So you probably don't have a bug, just conformant (but unwanted and annoying) behaviour. Best to construct your geometry so that it doesn't z-fight in the first place (admittedly not always possible).