Love this idea! I think it could probably be down with Workflows if they added the right functionality to the enrollment criteria options.
My idea for how this could be done would be to set the enrollment criteria for the workflow to be if there is more than 1 contact with the same value for a specified property (the user would get to choose this property), then enroll the contact that is either the oldest or newest (again, the user would get to choose this) and then merge the contact that got enrolled into the other contact that matched the same criteria, leveraging the native manual merge functionality that HubSpot already has.
The same process could be done for Companies as well.