I'm currently working on adding slot location sealing to SBCL.

Concepts:

 Set of Superclasses: the set of classes reachable from a class via
 CLASS-DIRECT-SUPERCLASSES links.

 Set of Subclasses: the set of classes reachable from a class via
 CLASS-DIRECT-SUBCLASSES links.

These are my workaround for the slightly nutty class linearization
in CLOS for the purposes of this work.

There are other parts to this, which build on this, but I'd like to first focus
on the restrictions seen here in the main interface:

generic function SEAL-DIRECT-SLOT-LOCATIONS class &optional slot-names

Seals the locations of the direct instance allocated slots identified by
SLOT-NAMES in CLASS, ensuring that all effective slot definitions with these
names in the set of subclasses of CLASS have the same slot location.

SLOT-NAMES must either be a list of symbols naming direct instance allocated
slots of CLASS, or the symbol T (the default) to indicate that all current
direct instance allocated slots should have their locations sealed.

Signals an error if any class in the set of subclasses of CLASS has sealed
direct slot locations, or has a non-empty set of superclasses with sealed
direct slot locations, unless those superclasses are also in the set of superclasses
for CLASS.

Signals an error if any class in the set of subclasses of CLASS has a
non-instance allocated slot with a name matching any of the names indicated by
SLOT-NAMES.

Causes future redefinitions of CLASS to signal an error if they would remove
any of the direct slots of CLASS whose locations have been sealed.

Causes future class definitions and redefinitions to signal an error if they
would cause either CLASS, or a class in the set of subclasses of CLASS to gain
a class in its set of superclasses with sealed slot locations, unless that
class is already in the set of superclasses for CLASS.

Causes future class definitions and redefinitions to signal an error if they
would specify non-instance allocation for a slot whose name is indicated in
SLOT-NAMES in either CLASS or any class in its set of subclasses.

Causes the specified primary method on COMPUTE-SLOTS to sort it's results in a
way that preserves the sealed locations. Results are undefined if there is
a non-specified COMPUTE-SLOTS method that is applicable to CLASS that does
not call the specified primary method and retain the order of the slots it
produces for sealed slots.

....

Comments and questions more then welcome,

 -- Nikodemus