This functionality hurts actual users that got mass reported and does not hurt spammer.
If someone gets mass reported, then they have no way of moving to a new public key without their audience and they have no way of clearing this up either. Most social media do not permanently ban you for getting reported X amount of times without reviewing the reports. Spammers do not care about their audience, so they can move to a new key.
This is no excuse to blame reports blocking users showing forever on the fact that "relays should review them" -- there will be relays that can't or won't review reports.
If a relay approves of a report, it will block the user completely, so you do not need to block them yourself.
If a relay doesn't care, then you cannot verify the report's legitemacy, and should not keep it in effect forever.
If a relay thinks it is invalid, it will delete the report and since your client can't see a report that never happened you can ignore it.
Easy solution also exists to spamming single pubkeys: block it
There is no justification for keeping reports forever and shifting the responsibility onto relays that have shown they don't or won't care. *No one* is currently reviewing reports on their relay.
So, please, make reports expire after 7 days or so.
