The best you can do is allow the post to go thru and make it appear to the spammer that they have succeeded. Let them view their post on the homepage and go away with a nice warm feeling of satisfaction, secure in the knowledge that they don't need to improve their algorithm at all for this site.
It's pretty straightforward to modify your display mechanism to include spam posts if and only if they originate from the same IP address as the viewing client.
I implemented this on Blogabond, and it had two positive effects: My Spam corpus is growing at a faster rate (thus making it more effective), and the sophistication level of the average attack has dropped sharply.
Since this site was built by Mr Bayesian himself, it never occurred to me that it might have weak spam filtering.
I read the cons on this suggest, but what about turning the approach just around: Keep the spam in by default, just the folks with higher karma get the spam filtered out? That way, the successfully submitted spam could not only be verified from the original source but also from every other node of, say, a bot net.
We don't have to make an unbreakable system, just one that makes us less profitable than the rest of the internet.
"To see naked pictures of Marissa Mayer, please type the words below into the box."
Surely there are easier ways of getting 30 hits.
Your points suggest that my utopia-philic thinking is probably less useful than accepting that some clean up is just a necessary overhead (cf: "Eternal vigilance is the price of liberty."). Thank you.
For instance, they'd employ Markov Chains to re-hash comments in a post, or from older posts, or from the text of the article.
One thing I've learned: spammers don't give up. If you give them an easy way to submit that's even easier for you to clean up, that's better than starting an all-out war that'll just increase the spam content and make it more difficult to filter out.