WC3 uses a rather unefficent database management system for custom resources. I rememeber dissassembling the source code and following it while it ran for a bit and noticed that for each custom object it ran some form of O(n) opperation to find something. As such the time taken to load each additional object increases linearly so the total time to load all objects is proportional to the square of objects data. This explains why load times get worse and worse with the more stuff you add, adding an extra object can cost more than first 50 odd you added to load.
Frankly there is no way around this, as this is a mechanical fault in WC3. Games like SC2 I hope use hashing or other forms of indexing like binary search which have near constant or logarithmic load requirements per additional data, this means that the load time for data would be proportional to the number of elements (linear).