Labels seem like they could be used as a generic entity/attribute/value database, which creates an entirely schemaless sub-protocol within nostr. This makes people feel like they can do whatever they want and it'll magically work with no specification of the details.
The intention was for people to define namespaces and vocabularies for classification, since ontologies are an impossibly open-ended problem. But pretty much no one does that, instead just creating ad-hoc key/value pairs. But labels should have cardinality > 1, which is not what values are. This is bad for relays too, which have to index all the `l`s.
It could work fine, but something about the nature of the protocol, or maybe what people are used to, makes it more confusing than helpful.