No, we shouldn't. The reason I titled this post "Quality of Implementation" is that this is exactly waht this suggestion is: a matter of the quality of an implementation. Good implementations would implement this; less good implementations would not.
I suggest we move this topic, or repost it to suggestions for next version of GL.
How exactly would you specify this behavior anyway? The spec already says that the values you get for non-explicit uniform locations are implementation-defined. How do you decide that it's "random"? Can it be "random, but only if you create a new context", such that the implementation can pick a random number at the start and bias all uniform locations by that number? Does it have to be random for every glLinkProgram? How much "randomness" does it have to have?
And most important of all... how would you test randomness?
This isn't something that can be standardized. It's a quality of implementation issue; a good debug context will help catch errors like this.
Nonsense. Simply allocate the first 1024 locations for explicit locations, and the rest are randomized for non-explicit.
If implementation uses explicit locations, then no randomization is possible.
Sure, and when you go back in time and force explicit uniform locations into the standard since ARB_shader_objects and remove non-explicit locations, then it won't have been necessary. But so long as code exists where explicit uniform locations are not used (and, this can happen by accident, since it's not a compiler error to forget the `layout(location)`), this will be useful.
Second, explicit locations are introduced exactly to help applications assume the location values in the shaders (exactly what you want to prevent).
Yes, and since this was completely accidental on his part (due to forgetting the query), he was unable to find the bug until much later. Welcome to the point of the thread; glad you could make it.
So, you know (from the experience, not from the specification) how some implementation is working, you are (mis)using that, and then you are complaining that it makes hidden errors.
We're not talking about someone who was deliberately using it, but who was accidentally using it.