while PEP-3333 declared as "final" (not sure if it means the same as "accepted"), I would like to draw your attention at this bug report[1].
Personally, I'd like to fix PEP in the way it resolves mentioned bug. But if you disagree with me, I'd like at least to add note about statements like:
"object A should be of type TA"
It's not common behavior for Python objects, and in some meaning it just breaks OOP in Python (see Liskov substitution principle[2]). Isn't this looks like unpythonic or at least as leaking abstraction?