Thinking even more about it, many changes are "cosmetic", such as renaming fields or restructuring essentially flat structures. These may make the system more consistent and easier to understand for newcomers, but break old code for "no reason".
So developers should develop some kind of taste to distinguish between "real" changes and "cosmetic" changes.
When you have a platform for internal use only (or a platform that is available free of charge without any warranties), you can decide to make a change by fiat.
We would like to "move fast and break things", but our customers unfortunately don't appreciate that sentiment.