I'll try to use [sarcasm] and [don't consider it too serious] tags more often.
Well, maybe my style is not obvious enough, but when I write something like my post above it is usually half-serious half-for-the-lulz.
So yeah, I totally agree that you should not spend 20 minutes per player to solve such issues, no matter if it's 1 player or 1000000 players. And I understand the 1:n relation of developers to players. In fact I'm quite infuriated when eg. an academic teacher writing a test that will be solved by thousands of students does not spend 1 minute to check his work for mistakes thus wasting thousands of minutes for the students.
As for the validation before and after, I'm just interested if validating both before and after would solve anything, but once again, my post was not totally serious, and I know that if you decide to do so, then you probably have your reasons and you know better what you are doing.
As for the Adam and Eve, there are better solutions, but indeed more complex than the 'disconnect = you lose' one and sometimes simplicity is better. Sometimes not.
And please, don't assume what I'm thinking or what I am about to say. It's impolite and I guess most people consider it a bit offensive and should be avoided even when joking.
Xinef ^_^
EDIT:
As for the validation before and after, I was thinking about a system that communicates to the system before, so that the system knows the account that is about to use the code so that it will not allow any other account to use the code. Then after the reward is chosen it communicates which reward is chosen so the server can easily keep track of the number of 'before validations' and 'after validations'. If your computer broke in between these phases you simply log in once again to your account, use the same code (it's still valid because the reward has not been given, but it's already limited to your account) and then you can choose the reward and finish the process. Thus using multiple accounts could not be abused, but I'm not sure if it leaves other forms of abuse possible... quite likely, I'm not an expert.
Hmm... other solution would be to validate the code not after you write it in, but after you choose the reward... probably something is wrong with this one too, maybe gold is given before the nymph is chosen, that would break the whole thing...
oh, I guess I'm just thinking too much.
[/end of Xinef-specific-similar-to-sarcasm-thingy]