Oy. A given email can be associated with different "people"? I would argue the semantics of that are a quite ugly. I would rename the people table Contacts. I would also rename the 'name' field in the Emails table to DefaultName to indicate it's strictly a fallback.
Semantics aside (which are a big deal, if someone else has to use this db), you reference an owner as a foreign key using varchar(20). There's no indication of what it is referencing, I assume it is some sort of Owners table, with a username as the primary key. I would recommend an int surrogate key... What happens if a user wants to change their username?
Lastly, the stickler in me would change the 'groupless' contacts. I would make a default group for each contact, call it _Groupless, and assign 'groupless' contacts like Tanya to the _Groupless group. The application can sort out the details. I don't particularly like optional foreign keys.