What you are talking about is NIP-09 event deletion.
That said, it is already in the spec that deleting a deletion is not to be supported: https://github.com/nostr-protocol/nips/blob/master/09.md#deleting-a-deletion
So really there is already a precedent for having exclusions to what a deletion request can target.
We also have kind ranges:
https://github.com/nostr-protocol/nips#event-kind-ranges
This allows us to make things like replaceable events, but why not a range of non-deletable events?
Absolutely we need to rely on relays, but we need a standard way to signal to relays what they should and should not be protecting people from. So what better way than to use events for this too?