I’m guessing they will need rate limiting too - in case something blows up. Perhaps someone’s DMs go wild for example - maybe that’s ok for a back and forth, however not ok for a DM flood attack.
Strangely the rate limit may need to be dynamic per pubkey.
However, what is your event firehouse for notifications? A relay aggregation service? Targeting only a pubkey’s 10002 read relays? How do their private/encrypted relays work? It’s all very complex.
Personally I prefer async comms - and disable notifications.