Suppose that package Y depends on a specific version of package X. If you have an upgrade for both packages, and the package X upgrade succeeds but the package Y upgrade fails, it commonly triggers a state in which the installed instance of package Y has an unsatisfied dependency for the previous version of package X. This causes emerge --keep-going to bail out, but we really want it to just prune off the broken part(s) of the dependency graph and keep going.
Created attachment 282523 [details, diff] build log demonstrating this kind of failure
This should fix some similar cases: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=72137f634878c4b0ef54287dd4a33fa2240a68f7 This will fix your particular case only if (app-editors/vim-7.3.189::gentoo, installed) got pulled into the graph indirectly via a satisfied build-time dependency.
For now, I'll just assume that this is fixed unless we can prove otherwise.
This is fixed in 2.1.10.11 and 2.2.0_alpha51.
*** Bug 312467 has been marked as a duplicate of this bug. ***