I recall seeing various bug reports for mypy where people misunderstand type variables with an upper bound (or is that lower bound? :-) and use them where they should be using Unions. So I think it's useful to reject these.

OTOH I have at least a little sympathy for stub authors writing a bunch of stub functions, some of which take two arguments of type SomeT and a few of which take only one such -- it's annoying to have to define a union *and* a typevar and to remember which to use when. (Especially since there is also real danger in writing SomeUnion for two two arguments.)

--Guido van Rossum (python.org/~guido)
Pronouns: he/him (why is my pronoun here?)