One additional optimization with CDS is to pre-resolve references to archived system classes loaded by the boot loader at dump time. This will help further improve runtime performance. It will also provide opportunities for AOT to generate more efficient code.
However, for an archived class X, it's safe to pre-resolve references to X's super classes and super interfaces. This should be safe even if some of the super classes/super interfaces have been redefined -- X will not be loaded from the archive anyway, so whatever we store in the archived ConstantPool doesn't matter.
Also, it's safe to resolve references to SystemDictionary::_well_known_klasses. These classes are loaded in the "early" stage of VM start-up, and CDS will be disabled if JvmtiExport::has_early_class_hook_env(). This means when CDS is in used, the well-known classes will never be redefined.