One should be able to replace an external copy geometry by instance, that is:
If the source part for the external copy geometry (ECG) is family tabled, than one should be able to right click the ECG feature in the target part and "replace". The functionality already works if the target part is family tabled (by having a reference model column in the family table) so it should also be able to work if the target part is not family tabled. Currently, if one points the ECG to a different model (even if it an instance of the current source model) one loses all of ones references and one must re-pick them and fix all the referencing features.
By extension, this same functionality should be available for use with pro-program, being able to replace the source geometry by using a parameter for the model name of the source part, just as one does to programmatically replace a component in an assembly.