Generally it is better to reduce the value of spam on your site and put in a few obstacles to trip dumb spam bots than to try to profile bots. Anything you profile can be masked, even in the most extreme case by running your bot in a real browser or using a real person. No matter how good the profiling is, people will still find a way to spam your site if the benefits outweigh the cost. Since spamming can be highly distributed (to the point of using zombie computers), you can still get frequent spam even if you slow down individual users. You also run the risk of cutting out legitimate users with profiling. (Referral headers can be shut off in standard browsers, there are good reasons to use proxies, and you could have users using a client you do not recognize.) If you have other methods to regulate spam, then it is more likely that adding profiling will end up blocking Richard Stallman from your site than an extra spammer.
Human registration with automated posting is not much of a problem. Someone has to look at your site and judge that it is worth spamming first, which it probably won’t be if it takes work to register and it seems well moderated, since spam can be removed in bulk when you have user ids to match it.
Honeypotting is the only profiling method that can be made reliable for automatic banning, since certain actions won’t give you a false positive. (Someone POSTing to login.php instead of signin.html - Someone visiting a forbidden directory only listed in robots.txt - Someone filling in fields that don’t exist - etc.)