The test case was wrong because it called finalize-inheritance explicitly, which means that it always succeeded unconditionally. Now, the call to finalize-inheritance is guarded by a check for class-finalized-p. Additionally, the call to reinitialize-instance is more 'sophisticated' to avoid interference of potentially acceptable optimization.

The new test reveals that CMUCL, MCL, OpenMCL and SBCL don't implement this feature correctly.

Many thanks to Christophe Rhodes for spotting the error in the test case and helping to find a better formulation.