The only purpose of keeping all the super types of a bean type within the spring index is to check for type compatibility. This could be optimized in a way to not store the fully qualified type information as strings in the index storage, but hash codes only (and then compare hash codes instead of type strings).
While this seems to be straight forward and easy to do, we need to verify that this covers all the ways a bean is being found when looking for a compatible bean. Generics might be a potential complicated case here, but we need to double check while implementing this optimization here.