To be fair, it is actually possible to load multiple mods in civ4. What you do is to add a module folder inside the mod's assets and after loading the mod's xml files, it will try to find xml files of the same name inside modules and load those. It will then add the data to the game or overwrite in case of using the same Type tag. It's rarely used for two reasons:
- most people don't know it or don't know how to use it
- if the DLL changes the contents of an xml file (like adding a tag), the mod will need to update as well
Particularly #2 makes it somewhat useless. Say you make a unit you want to use in multiple mods, you just add it as a module, but since big mods tend to change the tags in the xml files, the 3 mods you want to add it to could easily require 3 different xml layouts. To get around this, new tags could be added with MinOccur=0 and the DLL should insert something useful if the value isn't set, but I haven't seen any mod, which uses that approach consistently. You can't add DLL changes to modules as only one compiled DLL can be used at a time, not mixes of multiple ones and I have no idea about python.
In short: they tried to add a system for loading multiple mods at the same time. It just didn't work out very well.
I do not see a bright future for FreeCol. It's written in java, which is never a good choice when you aim for performance. It's not as brilliant as people say for supporting multiple platforms and relying on an installed JRE has given me a history of hard to fix issues and mind you, that's issues for end user, not developer, like FreeCol refused to go to fullscreen on my computer. Also despite popular belief, it is possible to write windows only java code, possibly even without knowing it. The only thing java has a big plus is the many libraries available. All the other benefits people talk about were true when java was new, but other languages evolved to compete and today I would rather use C++ than java to make software for multiple platforms. It just requires using only cross platform libraries, which most of them are.
Another reason why I don't have much trust in it is the fact that I once made a feature request. It was closed because what I wanted to do is not possible, meaning I was told I was trying to use the game incorrectly. I'm not sure what they were expecting with feature requests, requests for adding existing features? I would be ok with them rejecting for "we disagree that it would be a nice improvement" or "not compatible with our code design", but that's not what they said. In order to have a good project going of this scale, proper handling of incoming ideas and bug reports should be handled correctly and mine wasn't. Later I coded feeder service for RaR and M:C, which arguably does the same, expect it's better and more flexible.