Users vs. People - where to keep the email address?
I would create a distinct emails table and use a surrogate key to instantiate the reference of the email address to the person and to the user.  The model would look like this:



This handles the need to associate the email address with the users as well as the persons, but eliminates the redundancy of using the actual email address text to instantiate the relationship.  It has the additional benefit also of ensuring you understand who is actually using a given email address, as you can place an alternate unique index on the email address text as a given email address in unique.  I think this kind of solution would eliminate the cons while still retaining all of the pros.