Can you expand on why you feel double entry is a bad solution? I agree having to re-enter data isn't preferable, but it seems that a solution like this isn't perfect either; the user can still enter their address incorrectly quite easily without it being caught. It seems like double entry would catch more mistakes than this (not to dismiss this in any way as I really like it).
* Every field you add to a form reduces the number of people who complete it -- as it gets longer, more people will go "ugh, big form, not worth it" and click away the moment they see it.
* Autocomplete usually provides my email address for me, so asking twice is pointless; when it doesn't, I usually copy-and-paste from one email box to the other, and I'm not alone in doing so (see elsewhere in these comments).
* "These email addresses don't match" leaves the user to play hunt-the-typo hirself, while the submission's approach points hir straight at the (possible) error. I guess you could highlight the differences with the double-entry approach too, but suggesting plausible corrections remains easier for the user.
I agree that this is not a perfect solution - mistakes are still very possible and in some cases double entry may be the best option. That being said, this is still a good way to catch some of the most common typo cases!