Its censoring & it's needed. The decision is where should it occur. On the client or via the relays.
On Community Relays. A public square will always lead to master vs slave dynamics. Many interoperable private squares will not.
Every Community caters to different niche audience (which can be just one person, you, btw) and can have their own unique way of curating for that niche.
Trying to find general ways to handle spam client-side for every use case or niche leads to endless discussion and disagreements.