These cannot be implemented with the standard OpenGL blending functions, so we have to do them manually in a shader, which requires a good deal of machinery to create intermediate framebuffers and so forth.
This avoids arbitrary limits on the number of images, gradients, etc. you can have.