I don't know what would happen if you change the setting in web.config to require unique email, after it has already been functioning with that requirement set to false. My guess is that it would work and that the change would only apply to new users, but that would need to be tested. You'd probably want to search for and expunge pre-existing users with duplicate emails as well.
The error which comes up if someone tries to create a new account when one with the same email already exists (when that requirement is set to true in web.config) is:
"A user already exists for the email address specified. Please login using the registered account of that email address."
Our testing indicates that if the email address is changed for that pre-existing user, then a new user can be created with that address, as one would expect.
The Question and Answer functionality in web.config isn't implemented, so that can't be used to locate a username. There is at least one third-party module for this, which I have used successfully in the past. However I haven't tried it with any version of DNN 3 or 4. The module I used is the Forgotten User module by Spohn Software. I just took a look at their site, it's a free module and it mentions that it works with DNN 2x and 3x versions. Check it out here: http://www.spohnsoftware.com/Default.aspx?tabid=254 Most DNN3 modules work with DNN4, however, the latest DNN 4.3.2 makes significant changes to users and profiles so it would be wise to test first, or ask Spohn. If you can confirm it works on 4.3.2 please reply to this post to let us know!