A constituent can only have one primary phone and primary email. Allow us to query (criteria, sort, output) based on that specific phone/email's fields.
In the absence of a primary phone and email, if another active, not "do not call/email" phone/email is available on the record, use the top-most one. Or, make it so that automatically, the only active, not "do not call/email" phone/email is the primary one.
This would work like the preferred address. A constituent always and can only have one preferred address, and you are able to query that preferred address' fields.