Hi Tim,
The way we do it still involves the Sync Lead to SFDC option. We add a few choices in the flow action with the first being for example:
If Lead Owner (or whatever identifier you use) is not blank--Do Nothing
With the above, it doesn't change any assignments if the person existed before going through that campaign. Then below that we have the various assignment choices based on how we assign leads.
These flows work on a line by line method in that they continue through the choices until they find one that works and then the flow action stops. So if the person already exists, they will stop going through the "Sync Lead to SFDC" flow action after that first choice.
Hope this helps!