People think it's a spec that mandates how Nostr must develop, blocking everyone from doing what they want. In practice, it's just a place for interoperability. Where devs throw ideas at each other in the hope that other clients implement their stuff as is. For instance, there are hundreds of kinds being used that we have no idea what they do. They are just not defined in the NIPs because their devs didn't care. But they still use Nostr.