I have the habit of violently unmerging packages that seem to block. likely not the intended usage of emerge, but it can happen. however, the result is many build-errors because of that, that's a bug! for example dev-tex/floatflt cannot be compiled without latex installed, even though it's not a direct dependency. or app-text/libwpd which wont compile without boost. it seems when deciding about the order in which to compile packages portage-2.3.19-r1 only considers the packages where a direct 1st-level dependency exists, not the packages those packages depend on and so on. guess that's a speed-up, but if I previously used --unmerge instead of --depclean it causes breakage in some (not all) cases. so if portage has a choice between building a package early-on and building it later, maybe it should narrow down that choice by diving deeper into the dependency-tree? (much) older versions of portage didn't seem to have that problem...
*** This bug has been marked as a duplicate of bug 199856 ***