We already have an unofficial spam detection system.
There's a bot called SmokeDetector which is maintained by some users that checks every new post on all sites using a great load of filters and if it spots a spammy, offensive or gibberish post, it notifies the community through some chat rooms. Our users can then check that post and flag it as spam if necessary.
A specific number of6 normal spam flags (5 or 6 IIRC) then lead to automatic deletion of the post.
In my opinion it could be good to implement a system like SmokeDetector directly into Stack Exchange to check posts for potential abuse before they appear on the site. So posts that pass the filter appear immediately, but suspicious ones are placed in a queue that has to be reviewed by human users first. I think it should be a separate queue because posts in there would not be visible to the public, so it should be processed fast. However, I see that this would be a major network-wide change and is probably not going to get implemented in the near future.
Adding Captchas for every post is in my opinion an awful idea. Captchas are horribly annoying and I personally tend to dislike sites which prompt me with a Captcha more than once when I log in the first time.