Is there a downside to `typing.runtime_checkable`?

Hm, okay. The purpose of the rest of my reply here is to understand, I am not arguing against past decisions. I am trying to understand the mechanisms behind Python typing.

Looking at the rejected ideas section…

The problem with this is instance checks could be unreliable, except for situations where there is a common signature convention such as Iterable. For example:

I don’t understand that logic. Is there some reason why isinstance checks have to be unreliable? Am I right in understanding that the runtime_checkable implementation is incomplete — it “only” validates the names of the methods, and not the full signatures — and for that reason, Protocol types are not runtime_checkable by default? That feels a bit odd to me. Is there a technical reason I’m missing for why runtime_checkable doesn’t validate the full signature?