Typically, I deal with comment spam the way I was trained to because of CMS software such as WordPress:

But, this leaves you with a database full of spam comments, along with a load of junk to sift through when trying to find false positives. It also means that some people get too reliant on the intelligence of the spam software and assume it has correctly identified the comment correctly as spam, so simply purge the spam queue. False positives just get lost.
How is my system different? I got fed up of the moderation queue side of things, so figured it would be much easier to provide the commenter with feedback if their comment is marked as spam and allow them to reduce the number of links they've used.
It's not such a crazy notion:
I added an IP address check as an extra prevention against any kind of trial-and-error approach at spamming; the comment form can only be submitted 5 times every 2 minutes (excluding for validation).

Not a lot different, much simpler from the administrative perspective, and more transparent from an end-user's perspective.