1. A method for designing a system on a target device, comprising: generating a first netlist with a first set of functionally invariant boundaries (FIBs) for a first version of the system in a first compilation; invalidating one or more of the FIBs from the first set after performing optimizations during synthesis resulting in a second netlist with a second set of FIBs; generating a third netlist with a third set of FIBs of a second version of the system having a changed portion in a second compilation; and replacing a region in the third netlist with an optimized synthesized region from the second netlist identified as being identical, wherein at least one of the generating, invalidating, and replacing is performed by a processor.