Currently Portage applies updates (pkgmoves) to vdb and binary packages, and expects all ebuilds to be updated already. While this makes sense for a single repository setup, it doesn't work all that well with overlays. In the end, whenever we move something in ::gentoo, all overlays become temporarily broken for their users until they are updated as well. On top of this, we'll facing a kind of asymmetry here — since updates apply to vdb, packages installed from overlays have new dependencies already. However, they can't be rebuilt because source ebuilds still reference old dependencies. If you rebuild it with --nodeps, then force updates, then the installed version will have new deps. Therefore, I think it would make sense for Portage to transparently apply updates to source ebuilds as well. The main benefit would be that whenever we move stuff in ::gentoo, overlays continue working and users get full symmetry between source repos, binary repos and vdb. Optionally, Portage could emit warnings that the ebuilds have outdated deps, or we could just defer that to pkgcheck.