There's at least one problem with this approach: trying to sign up with a username that's already taken. If you want the username "foobar" and it's already taken, you're just going to get a "wrong password" error, when you really wanted to sign up. That certainly creates some sort of user confusion.
False. If I'm just using a web app myself, email may be sufficient, but if I'm creating a public-facing profile, I want a username to be visible, not my email address.
Of course, there is no reason why shouldn't you be able to log in using any of the unique information in your profile, be it email, your username/alias, your phone number etc.