I think the question of configuration and dependencies is a very interesting one. I've also found that it can be too inflexible to have libraries declare their own dependencies (through the usual "import" or "require" statement at the top of the library). My new version of the hackinator (https://github.com/awwx/hack) isn't doing enough to be useful yet, but it's an attempt to describe dependencies between libraries in a declarative way outside of the libraries themselves.
It opens the door another issue though: If you end up making two instances of a language core or a library, what if you want a value from one to mean the same thing in the other, but that value's meaning depends on something each module generates for itself, like a gensym or a mutable data structure?
Without a more specific example I can only guess... that if you have two instances that both depend on the same thing, you can either have one instance import that thing from the other; or else factor out that thing into a third location that the two instances independently import.