To start, I'm assuming you've made these changes yourself to allow for email/username as the same. If you're using a 3rd party extension, let us know.
Yes, right now, JFBConnect does not re-update the user's email address on login. It's something we have a task to add (as an option) to force email updates on every login. If you'd like the code to do this yourself, it should be pretty easy to provide (and may fix your problem immediately).
As for checking the user_mapping table before auto-associating, try the following (very minor) code change. In the /components/com_jfbconnect/controller.php file, at line 44, add the && !$jUserId below:
if ($configModel->getSetting('facebook_auto_map_by_email') && !$jUserId))That will check if both the auto-mapping setting is enabled and there isn't already a User associated with that Facebook user.
We haven't tested that change directly, but reading through the code, it seems like it will do what you're looking for. I've added it to my test branch, and it will likely be included in the 3.2 release, simply because we don't see any ill-effects from it.. and I think that's correct behavior (only auto-map IF that user doesn't already have a mapping).
Please let us know if either of the above options help, and thanks for being very clear with what you're looking for.. it really helps!