No, as to my knowledge spam bots are not that keen on reading and parsing the text to figure out what the answer "should" be.
I'd at least make a couple, but make them non-culture specific, such as "what color is the sun?", "what color is the grass?", etc.
Combating spam/bots from entering your system. There are a few services that pay actual people to complete registration forms, but they'd have to physically be hired to be used to register for your site and it will likely take a while before you are popular enough for that type of an attack.
No, the theory behind the hidden questions is a spam bot fills out ALL fields, so when a hidden from display field is answered it indicates a bot just came through and answered every question hoping to pass all of the validation for registration.
I don't think they can, as that would require interpreting the text in a contextual way and I just don't think they are doing that yet.
Nah, I see too many forms that definitely are cycling through a million questions, I'd make a small list of 5-6 (maybe a dozen) and leave it at that.
That would be effective, but too costly for the benefit in programming (if you go with a table). Just make an array and utilize that. Keep in mind, you'll need to give it some sort of ID that tells you what answer to expect.
http://www.google.com/recaptcha/whyrecaptcha and https://developers.google.com/recaptcha/docs/php?csw=1
Yes and No. The client is freely available for you to use (the second link above). The server that handles serving up the ReCAPTCHA is not (and for good reason, you don't want to tell everyone how it works!)
ReCAPTCHA is very trusted. I use it (because I trust it).
As you can see from the second link above, it is VERY simple to use. You sign up, get a public/private key, output the recaptcha using your public key, validate it using your private key and ta da! You've helped prevent bots.