Historical reasons: .asd files are meant to only contain simple stuff,
Not that this really matters, but ... this is not so.
.asd files have always been meant to contains things like custom component definitions and defmethods for them -- not "just simple stuff". Historically speaking compiling .asd files used to work fine, assuming they set up their packages right -- which is one of the major reasons for the
(defpackage :foo-system ...)
(in-package :foo-system)
(defsystem :foo ...)
pattern one sometimes sees. Not sure if it is still expected to work.
It is still expected to work, and it is actually recommended if you're defining any ASDF extension: classes, methods, even just functions, that may have to be redefined, debugged, traced, or otherwise named. I wonder if ASDF shouldn't just define a ASDF-USER package that uses ASDF and CL, instead of creating temporary packages every time. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org "Ask not what the government can do for you. Ask what the government is doing to you." — David Friedman, "The Machinery of Freedom", p. 21