One recent case is this:
Process 1) main system using 1 OpenGL-ES-2.0 context, and 1 2D context
-This system does some fancy animations etc. It has a scene graph and one special type of node is using a surface that is shared with process 2. Process 2 writes to the surface, and 1 renders it into the scenegraph.
Process 2) is a widget engine. It downloads things from the internet, and is generally not trusted. It renders its widgets to a shared surface which is rendered in the 3D scene by process 1).
Right now we are re-architecting the system. On of the things to do is to use more “open” standards. EGL is maybe not more open, but it is at least more “alive”