For sites that do not need to have user registrations. The most effective way to prevent registration spam is to disable visitor registrations. If you need users to register to post comments, consider using use third party chat applications like Disqus and Livefyre.
For some inexplicable reason I missed the memo that said I didn’t have to have user registrations and comments on every Drupal site. Every site I created I diligently installed a number of anti-spam modules. I settled on Captcha, reCaptcha and Honeypot as my trusted combination of anti spam registration modules. For me spam user registrations became a fact of life. I accepted that a few determined spammers will find their way through the protective wall of modules I install. When doing maintenance on the sites I maintain one of the tasks I perform is delete spam user registrations. It took a post on Stack Exhange for me to see something that has always right before my eyes. The option to turn off user registrations can be found at this path in your Drupal site, admin/config/people/accounts.
The advantage with managing your own list of users is the fact that you have the flexibility to control your engagement with your users. After all the number of users you have is one measurement of the success of your site. In retrospect I realise that most of the sites I manage are brochure sites. Usually there is one or two administrators from the client organisation who occasionally update the content on the site. That is if they remember how to do it. Mostly they just send me an email and ask me to update a particular page. I can safely say that at least 80% the sites I have created do not need users to register for the site. I have spent years battling spam registrations having accepted user registration is necessary feature for every site. I realise now that opposite is true, few sites need users to register. Not every Drupal site is a community or e-commerce site.
For sites that need comments I recommend using one of Disqus, Livefyre Comments or Facebook Comments. If you really need to let users register, in addition to my listed modules above I also recommend you install the Mollom module. Be sure to set aside some time to clean up your site every other week. Remember time is the most precious resource you have, use it wisely.