I've noticed that as well. For both @TypeDef and @TypeDefs, defaultForType always refers to the EXACT type for which it is the default. Subtypes of defaultForType are never picked up. It would indeed be nice if that was the case.