I would like to know if it is possible to resend this email if the user does not find this email for some reason (spam, has not arrived etc.).
If you use an actual SMTP account for handing your WP install’s emails, then you could review your sent folder and manually resend. But other than that, that customization does not have a mechanism for handling that.
On a related note though, activation links and password reset keys are going to be included in the 3.3.5 version of the plugin as an option. What’s being incorporated is based on the custom code snippet you’re referring to, although it’s being modified and advanced as it will eventually become a full feature in version 3.4, and the default operation in 3.5. Ultimately, there will be a cron (wp scheduled event) to go through and remove any expired activations (and remove the associated user so it can be re-registered) although I don’t know if that will be completed in the initial 3.3.5 roll-out. That initial inclusion will be limited in scope and will be intended to get it out there in the wild so objective feedback can move it forward for full inclusion in the next major release. (And since people will ask, I don’t have a target date for the release of 3.3.5. It’s being worked on, but not yet scheduled. It will be released when it is completed and tested.)