I am puzzled by your description of the problem. Drupal 7 should not complain if A user name is the same as account B email address.
However, without making a too big deal of that, there is a way you can change an email address to avoid any conflict within Drupal, and still get mail delivered to that user without interruption.
Simply insert the character
+ and some string after the name part of the address, like this:
User account A:
Username - usernameX
user email - usernameXfirstname.lastname@example.org
User account B:
username - usernameX@gmail.com
user email - usernameB@gmail.com
Drupal allows email-adresses with a
+ in them.
And for string comparison purposes:
usernameXemail@example.com ≠ usernameX@gmail.com
While for mail delivery purposes:
usernameXfirstname.lastname@example.org = usernameX@gmail.com
This technique, known “plus-addressing” allows users to sign up for different services with different aliases and then easily filter all e-mails from those services (provided their mail server doesn't strip it). Mail servers deals differently with “plus-addresses”. MS Exchange strips it, while Cyrus and GMail retains it - but AFAIK all mail servers deliver mail with “plus-addresses” to the intended recipient.