Nice guesses, but no one got it right yet.
We actually have to "censor" forum content often by deleting spam.
The most aggressive spamming is actually by some company selling do-it-your-self abortion drugs, posted all over the forum in the Indonesian language, and their website doesn't even seem to accept bitcoin. Go figure...
I'm just thinking out loud. Could we not prevent this kind of spam by having a user do browser based hashing for x amount of time each time he posts a message? Similar to what bitmessage does? Most spammers send as many messages per second using bots. They would not care to spam something if it is too expensive. The difficulty could be decreased with every post not marked as spam after x time.
Even smartphones would be powerful enough to spend a few seconds solving a crypto puzzle when the owner is typing.
You could even precompute these and store them as crypto tokens. Then spend your token to post a message.
You could trade these tokens with others, ie empowering bots that you actually want.