I think we should have a list of breaking changes. Changes to be merged should update that list if they change anything of substance.
What if each nip is aware of how many clients use it, and nips can only be changed If the client's implementing it gave their explicit authorization?