If I do a (require <FOO>) for <FOO> some internally supplied library of SBCL, doesn't that trigger the use of ASDF to load <FOO>?
It does. For example, (require :sb-bsd-sockets) also loads ASDF.
Note that if and when SBCL uses ASDF 3, it will be trivial to update its contrib to use the one-fasl-for-the-entire-contrib approach, and not have any contrib require ASDF. But we're not there yet.
But If if I load my ASDF before doing (require :sb-bsd-sockets) then my ASDF is used.
Yes.
The question: is this situation mean that ASDF must be hot-upgradable? IMHO not, because there is enough freedom for user to load his ASDF in the beginning.
In the current world, ASDF must still be hot-upgradable.
It is conceivable that we could move toward a world where it need not. Beware, though, of the perverse incentives that used to exist in the previous situation where it was not: http://fare.livejournal.com/149264.html You will need some force capable of countering them.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The main difference between a computer salesman and a used car salesman is that the used car salesman can probably drive and knows when he's lying. - Peter da Silva