This fixes a rather obscure bug with reshaping the entire class hierarchy from ClassBuilder. The problem was introduced by accidentally breaking the superclass/subclass invariant. The CS fixes this problem, by doing so actually removes some code and documents the critical invariants (both by putting comments into the methods affected and by making those methods private which temporarily break the crucial invariants).
The class comment has been extended to document the fundamental assumption that ClassBuilder needs access to ALL of the subclasses no matter where no matter how they are created.