I can think of several instances in which I have multiple accounts on a given system, with different user names, but identical email addresses (and yes, for completely legitimate purposes). It's helpful to not use email address as a primary key for situations such as that.
Also, how about when people change their email address? I've seen a *ton* of systems/applications that do not permit changing the user name / email address (when it is used as a user name). That bothers the hell out of me... why can't they just use an autonumber as primary key, and reference the account with it, rather than hard coding the user's username or email address into whatever other tables? In those instances, you'd be screwed if your email address changed, as you would have to set up another account. Yes, that is poor design (in my opinion), but *many* websites do that.