OpenGL should have some form of material evaluation callback mechanism, to allow the use of true procedural textures, in 1, 2, 3 or even 4 dimensions.
Albeit this goes against the OpenGL fundation: hardware-oriented (since the evaluation whould be done in the client)
It can be really great to final rendering needs.
The client thus, should provide a callback function, receiving 1 2 3 or 4 scalars, and returning an rgba value.
And it should be able to register callbacks for different material properties (GL_AMBIENT,GL_DIFFUSE,etc.)
This would really extend the functionality of OpenGL, not being only so hardware-oriented, but a good tool where quality is more important than polygon throughput.