Sounds great - but why limit it to 2 emails? If you are going to create a secondary email - create an array of them. We have clients who have multiple emails- some from the same company (eg. fred.flintstone@acme.com fred@acme.com fred.flintstone@acme.parentcorp.com) etc.
I would set a primary email on a contact and then allow for 1 or more secondary emails. When a new email is sent in via BCC, etc. you would look up that email against any and all primary and secondary emails to match to the client.
When you merge customers (I currently have one customer with 3 emails), pick one to be the primary and shove all of the other emails in as secondary.
We migrated from Pipedrive and their system worked that way -
Thanks!