The way I go around it is actually making an automation between CRM and other tools through Zapier where I'd always add an extra step to check if the contact with the same email address exists. If that is the case, the zap simply would not go through and duplicates would be avoided.
I guess you could do the same for companies as well.