Annotations are ignored by the compiler (except insofar as they require adding some attributes to objects) and do not guide the bytecode-compilation process or empower any kind of optimization (without a dedicated third-party system like mypyc). Nor are they relevant to PyPy. They are not even free abstractions: as mentioned some objects gain additional attributes (in case you want to introspect something at runtime, but you usually don't), and e.g. calls to `typing.cast` still have to be looked up and made even though it's explicitly intended as a no-op. Plus, expecting annotations to reflect types that can be statically checked gets in the way of other interesting uses of annotations (and the original PEP explicitly designed with other use cases in mind).
I have been using Python for over 20 years. If anything, my attitude has become further against type annotations in the last few.