I think the nature of OpenGL's API (internal state, very simple C-style functions - contrast with DX) means it is very portable. Java also interacts nicely with it, as does C++, and I've not worked with WebGL but the very fact it exists says something about it.
OpenGL is a good API, but it's design is fairly terrible, and its implementations range from quirky to terrible (cosnider Intel's support for anything above 1.4).
The notion of internal state is fine and well for only the most trivial of programs--once you start doing something requiring multithreading nothing but sadness awaits.
OpenGL is great. Really well designed :)