> Spam is subject to semantics
In a bitcoin context, it is also subject to definition: chainspam is data embedded in blockchain txs not there solely to securely transfer, reclaim, or privatize value. Transfer means reduce the senders' amount and increase the recipients'. Reclaim means restore part/all of the senders' amount after a failed payment. Privatize means do a coinjoin or similar.
> If we cannot create an algorithm that gets rid of 100% spam for everyone, than we simply don't know what spam is for everyone
It may be possible to express the above definition in one or more algorithms that together filter all spam except possibly for spam requiring off-chain disclosure of a deciphering key. But even if not, there are algorithms that eliminate entire classes of spam from user mempools; they are in use in Knots, for example. One need not have a 100% effectiveness rate for the filters to be useful.
> we must not give in to our urge to censor people we fervently disagree with
Interesting choice of the term "censoring." Why is it wise to filter DoS attacks? Because users find them harmful, regardless of whether the attacker feels censored. For the same reason, it is wise for users to filter any spam they don't want in their mempools, regardless of whether the creator feels censored.