Don't underestimate the need for for change in ones life.
For example, I may drop hotmail for another email provider after I sign up. Will you still send me all my notices to a nonexistent email by not allowing me to update my email (since is part of the log in )
User names, that is monikers specifically chosen by the user, well that 50-50. It can be a exercise in vanity to be able to use a cooler nick that occurred to you after you initially signed up , but still be able to retain any seniority/data. However this could be confusing to other users.
I assume you are checking for duplicate emails/usernames before submission? that is to prevent the coincidental choosing of the same pass/login by different users?
Incidentally, your DB should contain a UNIQUE field/key for each sing up, data which is invisible to the user him/herself .. and this is the way site management should be able to identify the user.