I tried your example. One way around the problem is to call (clos-internals::finalize-inheritance (clos:find-class 'class-z)) after the defclass for class-z. This seems to run fairly fast, (it doesn't call the compiler) so it might not be unreasonable to do this for every clos:defclass.