So many people expect so much from automated programs these days. They think they are always going to do everything for them, without fail or error so they never have to think about lifting a finger and applying one ounce of their own efforts to do anything.
In the over 2 years I've been using SMF, I've hand NO spammers get through. None. And, all I've ever used is the smf program... as it is. First and foremost, I don't auto-approve ANY registrations. I will take the time review them. Along with that, I added custom registration fields. Bots will invariably enter the same info into some or all of them (usually, it's their source e-mail) so they stand out like a sore thumb and then, I add them to the ban list.
So long as computer generated methods of confounding bots are used, I don't know if they ever will or even can be foolproof. For every security measure created, a way around it is found. The one thing bots can't be programmed to do is to figure out answers to questions which require human reasoning when the bot programmer has no idea what the human answer is because they have no idea what the question is going to be.
IMO - Bottom line is, if you value a spam-free forum, take the time to review your registrations manually. I realize this requires effort on your part but, a 100% track record and a community which has enjoyed years of spam-free use of the forum and site is well worth it... to me, at least.