Been lurking this thread for a looong time now, finally decided to post a suggestion.
For interchangeable tilesets (probably more easily added sooner than later; less to change), I'd suggest a tilesets folder with subfolders for each configuration. Each folder can name images however it pleases, and then the xml files will either have standardized names, or maybe stonesense just loads all files ending in xml; I'll leave that up to your discretion. These files state which image files they're referring to for their image indexing and index the objects, like in the current xml files.
For making mini-mods to tilesets feasible, I'd suggest making a setting in the config that gives an interface for loading multiple tilesets. It starts by loading the first in the list, then loads the next one, overwriting anything previously defined by old tilesets with ones in the new set, that way any images not specified in the new set won't be displayed as blanks in the viewer, and it's easier to change, say, only the trap graphics, and have them usable without inserting the trap graphic into a dozen other tilesets, so everyone can have them with the tileset they prefer.
As an example of how stonesense would load the tilesets...
Sarting up? Oh boy, time to display some Dwarf Fortress!
I'll load up the "Default" tileset that defines all objects and has images for them, just to make sure nothing is left blank.
Now I'll check the configuration file to see if there's anything else I should load.
I see the user has added a tileset to the configuration, I'll load it.
This tileset also has all objects, that's fine, I'll just replace all instances of the old graphics with the new ones.
Hmm, another tileset.
I'll add this tileset.. This one is a mini-tileset defining only water graphics. I'll go in and change all the graphics this talks about to the new ones specified here.
Another tileset. Ho hum.
This one only changes the kitten graphic. How minimal. I'll just update that index..
That's it! Guess I'll move on to other configuration options now.
Sorry for the long-windedness.
EDIT: Oh, and I failed to specify, tilesets would be referred to in the configuration file by their folder name.