If the list can change between reboots, this would be bad if precompiled or pre-expanded libraries are used. A macro transformer that ran yesterday could have inserted the wrong code for today in its output.
In practice, new versions of software may add new codes but do not change the meaning of existing codes. Our entire software stack would fall down if e.g. a new Linux kernel randomly reassigned errno values, or existing HTTP status codes started to mean something different.
