emerge should have an option to whine about USE flags when they don't exist/are masked/whatever. Just a "foo: USE flag is masked" or "foo: no such USE flag".
AFAIK, this doesn't really make sense in the context of Portage. USE flags are merely an environment variable. Moreover, just because it doesn't exist in the set of packages being merged, doesn't mean it's not valid. Unless you want Portage to check for the set of USE flags against *all* packages in the tree.
I'm not talking about global USE flags but per package USE flags.
Atoms can span more than one version. What if the USE flag is only in a version that is in an overlay that is not on the current machine, but package.use is shared between machines? What about multislot packages which modify IUSE?
What I am proposing would only be a warning. So, if you use --ask, it will mention at the bottom that "foo-bar/fu baz: USE flag 'baz' is masked". I don't think the scenarios you are considering are problematic. Furthermore, this is only an option -- you can turn it off. For my use case on my laptop this feature would be a win. Everyone who doesn't share this winnage can just not opt-in, so there is no losage.
*** Bug 510164 has been marked as a duplicate of this bug. ***
*** Bug 723448 has been marked as a duplicate of this bug. ***
*** Bug 735660 has been marked as a duplicate of this bug. ***