Haven't looked at the code in-depth, but what happens most likely is that it updates the contacts' table information but not the users' table.
Blesta registration basically goes first to the users table, then creates a contact entry. When you update the contact's email, Blesta is only focused on the contacts table itself, leaving the users table to be untouched. This would be an easy fix to add into the code, and as long as the contacts.contact_type == "primary" update the user's information as well.