Currently (portage-2.1.1_pre3-r4) emerge will die if all ebuilds for a needed dep are masked/removed, regardless if the dep is already installed. But for world packages that are not a dep of something else, either: a) package gets masked, you try install it, you get error, emerge dies, fine. b) you install a package, then it gets masked... In case b) emerge should give a warning (and/or even die) when you try to update world. IMHO it shouldn't make differences between (trying) installing package before and after masking. Currently it just gives a warning (list of such packages) that's easy to overlook (from my own experience :) and only with --verbose option... I think such info is too important to be printed only with verbose option.
Created attachment 92658 [details, diff] patch for emerge for more explicit output This is my patch attempt to handle this - the list of missing/masked packages is printed even without --verbose and the !!!'s are red for better noticing. Changed the text a bit too, I think it's more correct now, but maybe I'm wrong on this one.
Thanks, your patch is in svn r4022.
This has been released in 2.1.1_pre3-r5.