The OpenGL compatibility profile is something very specific: it is defined by the OpenGL spec as a variation of a 3.x context that is modified to also support all obsolete features of OpenGL 2.1 (as opposed to a core context that drops all the quaint immediate drawing and matrix stack functions among others). It defines a few of the OpenGL 3.x features deliberately differently than a core 3.x context to keep backwards compatibility while providing most new features. This type of context was defined to help migrate applications forward. There's a lot of old OpenGL rendering code in CAD and DCC tools that is barely maintained and these vendors pushed the compatibility profile into the specification.