using :if-feature is not deterministic (it depends on e.g. the load order of systems, unless fixed, see Robert's mail).
using subsystems that explicitly record dependencies is deterministic.
we once used asdf-system-connections, and the non-determinism that it introduced was a source of long hours of headaches... once we moved on to use subsystems and system names like :mylib+swank, it was all gone. - attila