Not all systems require installed compiler to function (some of them require only package manager to install binary packages). I propose to split stage3 tarball into two different tarballs. This logically follows EAPI-7 separation of RDEPEND and BDEPEND. Reproducible: Always
and also, separate @system set into @system and @buildtools
Stage only means needing to run `emerge --depclean --with-bdeps=n` to cleanup, is it really worth its own tarball for every main profiles, mirrored and everything? Also while considering that not many users need this. Not that it's up to me. gcc/binutils/etc... does have to stay either way given it's used for checks and other non-compiling tasks. Making those optional would require some major reviewing anyhow, can't casually removing things from @system.
And premerge checks should be separated into pre-compile-time checks and pre-install-time checks.
This is kind of asking for a large set of different things and is done in a low effort way.