The problem is that a lot of Android devices that claim to support these specs do so in buggy and inconsistent ways. GL shaders, for instance, sometimes have to be tweaked for individual devices.
GL shaders have to be tweaked on every platform, and every device. The only thing that's consistent about them is that they're inconsistent everywhere. For example, certain drivers will reject shaders using integer literals where floats are expected, others won't; different GPUs will also behave different with respect to precision, or with how they handle a NaN in math.
That's GPU "fragmentation." You have multiple hardware/firmware/driver implementations of OpenGL. Unless you prescribe a GPU and software stack, you will always find things that slip past compatibility tests.