Now someone needs to start a project to find a large, documented subset for which ANGLE(ToGL(x)) = x so we can all get rid of this historical two-standards-that-do-exactly-the-same-thing nonsense.
Which OpenGL flavor to support 2.x, 3.x or 4.x, followed by which GLSL level to support, and which GL ES flavor to support 1.x, 2.0 or 3.0 and their respective GLSL levels.
Not to mention vendor specific extensions and workarounds driver bugs.
So one ends with multiple code paths, if several versions are to be supported. Similar to how HTML or POSIX are portable, but then again not so much.