[...]
What? There is no need to complicate defsystem anymore. you just define a system called libuv-config which loads a designated configuration file and make your libuv system depend on libuv-config which gets loaded before it.
There is a great need for a way to scope *features* to a DEFSYSTEM so that they don't bleed into the global environment, and for features to be not a set but key-value pairs.