When the username for a service is an email address should the field be called 'username' or 'email'?
Call it the email address. It's unambiguous.
A user returning to your service will always remember their email. They may not remember if they configured a special username, however.
If you want email, use email.
That said, I find that people tend to forget which email address they used to sign up. Many people have multiple email addresses. So you have to clarify what it is you're doing.
Here's how I solved it:
Depending on the level of experience of your users, you may wish to be careful about how you ask. If you provide input boxes for "email address" and "password" then I wonder, if maybe there is a risk of some users providing their email and password.
It might also be good to give a suggestion somewhere on the page that this is a "new password for this website", for example something like - "for good security practice, we would encourage you to pick something different from your own email password".
When I come across a site where the label is username but I need to enter my email address it becomes a very frustrating user experience.
The example you describe could happen during implementation of the back-end. The use case in question probably required the user to login using a "username of some kind". Either that, or the system it is built upon uses the term 'username' and the people who made the system decided that the username would be the users email address, but the front-end developers didn't get this spec when they where building the UI. Something along those lines...
To reduce confusion, you should really ask for what you want. A username is not necessarily an email, but an email is always an email. There are no good reasons to make a UI ambiguous so it should be presented as "email" in the UI.
You can get away with calling it username only if your form registers both an email address and a nickname, and both are valid as login names. Otherwise I'd fully agree @Jimmy Breck-McKye's advice.