In a layout, you can define Global Datums, so assembly constraints are controlled at the layout level. Then you declare (Declare > Declare Name) geometry in your part (e.g., surfaces, axes, etc.) to the Global Datums. If enough global datums are declared, then Pro will tell you automatic assembly is possible.
Later, if you want to Replace a component, and another component is declared to the same Layout with sufficient datums declared, then you can replace.
Here's the problem:
Global Datums worked fine in 2000i2. Then there was a Software Performance Issue with them in 2001. The unofficial word from PTC, back when I used to work there, was don't use Global Datums. The functionality didn't work, and I had heard of no plans to fix the problem. One reason was that the Component Interface functionality in WF would make Global Datums unnecessary.
If you're going to replace, use family tables or interchange assemblies.
I have been recently using Global Datums in WF (creating a CSYS in two different parts and a layout and then declaring the layout in both parts) to do automatic assembly and I have not had any trouble with it. It works very well.