Because we are making it up as we go along. And the point of Nostr is that each implementation can make they own rules.
Discussion
This is not a client implementation issue (it could be).
It's mainly a relay issue. Also the delete feature was in the protocol from the beginning.