Possibly I should try automating the following manual procedure?
What I found over at lennyworks under tips and tricks/assemblies.
In effect, this is a "copy with mates" between assemblies.
You can insert an entire assembly into a blank temp assembly model, making it a sub-assembly. Select the components you want to copy to the "other" assembly and move them out of the sub and into the top level assembly in the tree. Right click on the sub-assembly and choose replace components, and replace sub-assembly with "other assembly". Now move the components back from top level into that sub-assembly. Your "other" assembly will now have the new parts with mates intact probably mostly. DO NOT SAVE ORIGINAL or you have done a move instead!
I have used "form new subassembly here" which creates a virtual sub assembly. Copy the virtual sub assembly (all mates preserved) to a new assembly model then dissolve. In the original assembly you can either drag the parts back out of the virtual sub or dissolve.There are many possibilities with this. I used it to create hybrid mirrored assemblies where the mirror components command won't work. One drawback is the dissolving reorders the parts in the feature manager of the original assembly.