If you're trying to optimize a registration process, you want to minimize the number of people you lose at each step. If someone gives you a bad email address, and then you try to send the activation link there, you've lost that registration. If you catch it when they submit the form then you've got a better shot at getting a complete registration from that user.
But there are several businesses that tried to do exactly that and lost me as a customer since they didn't accept my perfectly valid address with a + in it.
The key is that your validation is not about "accepting addresses you know are good" but "rejecting addresses you know are bad." If I enter foo@gmail@com as my email address, it's bad user experience to make me sit around refreshing my inbox and wondering where the confirmation email is.