I've already implemented something like this with #Nosflare but do allow kind 0 events. However, that's only one piece of the anti-spam measures with Nosflare. By default, Nosflare requires a valid NIP-05 and optionally it can hash content and not allow duplicates. A new user can save their profile metadata to include a valid NIP-05 and all future events will be allowed. The bots haven't started using valid NIP-05 yet. So far, it has been working beautifully to stop the spam.