Can the uniform id be changed from run to run on the same machine?
The uniform locations are set when the program is linked and are tied to the program.

This means that when you create a new program then the uniform locations can change.