I am using ConfirmEdit with QuestyCaptcha to prevent spam account creation. However it was quite painful to watch a new user trying to register to my site, because he had to re-fill the form several times (password did not match, username already exists, forgot to re-type password) and each time he had to think about the answer of a different question.
To improve usability, I would suggest:
a) saving the selected question in the users' session and providing a link to "show a different question", b) or showing a different question only if it has been answered incorrectly. c) Yet a different approach would be to save the information "this is a human" into the session so that he only ever has to solve 1 captcha, even if the form reloads because of a different error.
For backwards compability, such behavior should be enabled via a config variable.
What do you think? I am willing to write a patch but am currently not sure which is the best approach.