Related documentation: https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-user
My question here is why is User().Email implemented as User.().UPN? This makes it difficult when attempting to compare user details. Such as in the case of looking for items created by a specific user.
For Example, in the case of a SharePoint list item, specifically 'Created By'.Email, this does not match the User().Email. In some cases, including any Guest user account, the UPN is NOT the email address of the user. Thus, making it much more difficult to do this type of comparison when the provided information is incorrect. I believe there is a valid case for moving the existing functionality of User().Email to User().UPN and having User().Email instead return the actual user email as defined in their Entra/Azure AD profile which may contain multiple email addresses for a given user.