I'm invisoning a system in which the moder can explicity choose what goes into the save. Saving all changes as individual moduals is a good option to have but in some cases this could create too much clutter as hundreds of individual element moduals are created. A "Modual" would be minimum set of files adding or modifying a single game element such as a tech, unit, Civ ect ect. A "Package" would consist of one or more moduals bundled together on the same XML files. So rather then a dozen folders each with a single element file you have one folder and one file with 12 elements. This will also solve dependency problems as people add multiple new elements dependent on each other. Lastly it should present less of a burden at load time as their are fewer files to search and load.
Given this paradigm the user could have severl save methods, on the edit window their could be a "Save Modual" which saves just the raw element data without performing any cross dependency checks, this would serve mainly as a method of extracting smaller portions of larger mods. On the main Screen the "Save Modual" option would open a window with two large panels, on the left is Savable Elements underwhich every type of savable data is listed, tabs along the top would organize the types. On the right is the In Package list and ofcorse their are two big Buttons "+" and "-" for adding and removing. Once the user likes the list and enters a package name the save writes all the nessary files taking dependencies into account and grouping together the proper elements and making things neat and tidy. This would serve as the primary means of destributing content and making patches to existing mods.
Another issue, their currently isn't any way to destinquish data loaded from a modual from data loaded from the games base files. It might be possible to tag data with the file pathway it originated from at the time of loading and to then expose it to python. This would allow the Editor to recognize Packages and moduals so they could explicity be manipulated as groups of element and saved as such. Once we have a differentiation between base and package it should be possible to incresse the inteligence of the save features so that dependent information is automaticaly included in a modual.