Hi!
In the old days, we would just put (asdf:load-system "extension")
That's good. This is declarative enough to be processed by tools like quicklisp.
What goes to side effects, they are just inevitable if we want
i) asdf to be extensible ii) some dependency language is used to declarate which system-extension relationships
The only way to avoid side effects at asd file processing time is to load all extensions together with asdf, but this is what we want to avoid when we talk about build system, isnt' it?