Have you used the cross-model drag-drop features I added in the December 2010 release? Follow the links from the December 2010 CTP Changes section in the readme file.
As discussed in the readme, cross-model drag merge operations are based on pattern matching. Elements in different files have different identifiers, and there is no historical record kept of where an element came from. This type of historical tracking of element sources requires tracking of significantly more information. For example, if an ObjectType is merged from a source model into a target model (with source information), the ObjectType name is changed, and the merge operation is performed a second time, what should be done? The historical information says that the two object types are the same, but a pattern match says otherwise. This requires user intervention to choose the action (keep the object types connected in spite of the pattern difference and restore the original values, keep the connection and preserve the changes in the target model, break the connection and create a new copy of the source ObjectType) and a way to store these user choices so that the merge can be repeated without intervention.
Getting this all together would obviously be a lot of work, and the pattern-based merge is a preliminary requirement for implementing this type of historical import tracking. Hopefully it will cover your workflow and let you work smoothly with your separate model files.