[...] If anybody distinguished between "annotations
are unset" and "annotations are set to an empty dict", that code
would fail, but I expect nobody ever does that.
I agree, since I can't think of differing semantics. Given that `__annotations__` is filled from annotated class variables, the only reason someone might care about the difference would be if they are aware of code that manually *sets* `X.__annotations__ = {}` and they have some kind of shared understanding that that means something special. I find that highly unlikely, and frankly, if someone needs such a shared understanding, let them just pick a unique key to set.
I do worry about the best practice getting worse if your PEP 649 is accepted.
--