I've proposed PEP 593 `Annotated` too, but in the typing-sig mailing list: https://mail.python.org/archives/list/typing-sig@python.org/message/CVLLRWU7... and Guido had the following answer:
I see PEP 593 as a verbose solution to the problem "how do we use annotations for static typing and for runtime metadata simultaneously". Type guards solve a problem that's entirely in the realm of static typing, so IMO it would be an abuse of Annotated.
For the most extensible approach both -> TypeGuard(...) and -> Annotated[bool, TypeGuard(...)] could be allowed, which would open the
(I've also written in the mail about checked cast as an alternative solution to type guard.) path for future non-type-annotations, which could be used regardless of whether the code is type-annotated. I've proposed a possible implementation in my mail linked above.