As you indicate, for maintenance reasons, it's not a good idea to have two copies of a dataflow. each and every time you've got to change the logic, you'll have to do that in 2 distinct locations.
I always solve this isue with 2 global variables:
System_load_date >= $StartDate and System_load_date < $EndDate
Set $StartDate to a date far away in the past for an initial load; calculate it (in an initialisation script, based on a control table...) for an incremental one.