That’s correct, that PEP has quite rightly doesn’t - it has no business in saying how I use a type alias at runtime.
In the beginning, before Python supported annotations for static type checking, if you wanted to declare a type alias in Python, you assigned a type to a variable. You may have also been assigning a type to a variable to use it as something than an alias for that type, maybe you wanted to print it out for debugging, maybe something else. The possibilities are literally endless, but a subset of those infinite use cases are those where you have wanted to actually use it as an alias as a type.
Prior to annotations being introduced, literally the only use cases for using a type alias as an actual alias for a type were in the same places where you would use a non-aliased type name - as constructors, in class definitions, issubclass and issintance checks, and so on. It was, crucially, impossible to use type aliases as annotations, because type annotations did not yet exist. These are completely valid, Pythonic, encouraged uses of type aliases.
There’s one problem with this however - it was impossible to semantically distinguish between uses of variables as type aliases vs merely wanting to do something else with them, like print them out. Once annotations had been added to Python, we suddenly had a way to provide this semantic information, but there was no way of distinguishing type aliases from other uses of assignments of types to variables until PEP 613 was implemented. That PEP did not say anything about the runtime use of type aliases quite rightly, because that was not its aim, neither was runtime uses any of it’s business. But up until that point, the only use cases that existed for type aliases as actual aliases as types had been those runtime uses I outlined above - as ctors, in class definitions, in dynamic type checks. It was only around this time that people were starting to use them in type annotations for static analysis.
Enter PEP 695, which adds a new way to define type aliases that are only usable in type annotations. To be clear, these aren’t type aliases, they are type annotation aliases, since they can’t be used as aliases of types in any other context aside from type annotations. But you know what? That’s actually fine, and personally I think PEP 695 syntax for declaring generic classes and functions is a great step forward.
However by making type expressions only usable in type annotations and at the same time also deprecating typing.TypeAlias, it has removed the only valid way to annotate actual type aliases as such.