APiv4 does not handled display name when only email is provided
Demonstrated in the test https://github.com/civicrm/civicrm-core/pull/18865
Options are
- accept that it's OK to pass 'email' to contact.create bao even though it is not a 'contact field' or
- do an extra check on every primary email save - note that historically parsing the smarty greeting tpl for the display name is expensive so we'd need to only set if empty.
I'm on the fence about the performance of 2 - most of our db locks these days are actually db insert locks on the email table for some reason (now that we have eliminated the acl related locks)
@colemanw - but to gitlab as promised