I was trying to figure out whether I'm allowed to attach multiple shader objects of the same type (such as GL_FRAGMENT_SHADER) to a single program object. The OpenGL ES 2.0 reference appears to contradict itself on the matter, however:
Multiple shader objects of the same type may not be attached to a single program object.
But from glUseProgram:
A program object will contain executables that will run on the vertex and fragment processors if it contains one or more shader objects of type GL_VERTEX_SHADER and one or more shader objects of type GL_FRAGMENT_SHADER that have all been successfully compiled and linked.
I've only tested it on Broadcoms OpenGL ES 2.0 implementation so far, and it seems to allow attaching multiple shaders to a single program object. However, if some implementations do not support that, I cannot use it, of course.