> it will miss cases where two data structures happen to have the same signature.
Huh. That's exactly the point: TypedDicts are structural types.
> we have class, namedtuple and TypedDict, which all can do much the same thing.
No, they can't. The former two are nominal types.