I would like this, because I wouldn't abuse it, but as Jordan says, it breaks the Liskov substitution principle, so it shouldn't be done.
(Now, allow for the final
keyword to be used, to prevent that, and I think you might have a solution.)
However, we've always needed to be able to refer to protocols and generic types as non-derivable namespaces, and erased types. Not having that feature has resulted in the AnyX
mess of a pattern.
Looks to me like the linked "would require significant changes to the implementation of protocols" thread mostly is what needs to be done. It just needs to apply to generic types as well as protocols.