My take on the issue:
Any solution has to make spam expensive. Anything else is just adding further problems.
That's why I like the solution implemented with Litecoins.
Why does spam have to be expensive? if transactions are zero fee, then miners have no incentive to include them, so they'll just get filtered out and apply some mempool clearing system that forgets them after a certain time. If the transactions have a fee attached they are not really spam, so why not let supply and demand economics take care of the miners incentive?