With the new C++ 11 standard, we would like to see GLSL adopt the C++ standard and introduce classes to the shading language. I can think of many useful applications. One is representing a fragment by a class. For example:
This way we can direct the fragment to any location or even generate other fragments, as I suggested before.
std::list<MyFragment> frags = frag.Clone(4);
I think OO is the way to go in shaders and it will solve many problems. For now make it an extension: