To give another point of view: Email address is personal data, and as such it mustn’t be offered by an API, in my opion. Especially if it would be returned as basic data and the user don’t have a choice.
I’m not using Facebook apps, and one reason is that their API is offering too many basic data to each app and that too many apps are asking for even more additional data which IMO wouldn’t be required in many cases.
So I like that Twitter is caring for privacy and doesn’t offer the email address. Even if it would be on a permission base, than too many apps would request that permission (so that I can’t use them) even if there is no real reason (requesting data/permissions for no obvious reason is not acceptable behavior).
In this thread the most common case I read is that you want to identify the user, which you could do via unique Twitter ID and IMO isn’t a good reason for requesting personal data. Also there is no guarantee that the same email address is used for all services, so you can’t rely on that to avoid double accounts if someone logs in with Twitter and Facebook.
Also you are implying that the user want’s that you can identify him outside of the Twitter account he used to login, and you implying that the user wants that you use the emal address of his Twitter account instead of another one.
Instead of forcing the user to give your app a permission to read email address, you should inform him: Hey we want your email address for reason XYZ, you can (optionally!) please give it to us? You can still use our app without doing so, if you don’t want to use feature XYZ.
My experience is that most apps (of the services which offer many data via API/permissions) fail at caring for that and don’t give the user the choice and don’t explain why they need permission XYZ.
PS: I’m a developer, however I’m not using Twitter API atm. The reason I found that thread is because I was afraid that apps can read my mail address and that an app could store/display it somewhere on my smartphone.