Ah, the delights of maintenance on SBCL's compiler. Large Classes. Temporary Fields. Setting Up Objects By Constructing Them Empty and then Mutating Them Here, and then There, and then There Too, and Hopefully Getting Any Given Invariant In Place Before the Execution of Any Code Which Relies On It.
And CLOS is still only constructed in warm init, i.e. by the compiler, so CLOS still can't be used in the implementation of the compiler because of chicken/egg problems, so even when I manage to reverse engineer this bizarrity well enough to see how it should be expressed, very often it can't be expressed that way. Hmp.