Recent gcc version improved lto support. I successfully build a stage2 cross-compiler with -fuse-linker-plugin -flto -fno-fat-lto-otjects --param lto-partitions=1 with crossdev (so shared libraries are disabled). I've seen great speeds/memory improvements for emerge.
This the matter of few replacements (ar by gcc-ar; ranlib by gcc-ranlib; nm by gcc-nm; stage 1 and 2 CFLAGS...).
Versions prior <4.8.2 have a bug that affect symbols in libraries and lto support should be disabled if the target version or the current gcc version is <4.8.2.
Currently, it take 1.5 Gb of RAM per --jobs=number for make. So checking the available RAM or reducing the number of make Jobs should be a requirement.
It seems there's some work for building a native compiler by this way as well as not using --disable-shared in the confgcc variable.
GCC_MAKE_TARGET=bootstrap-lto emerge -v1 gcc
do the right thing?
USE=lto should pick lto-style bootstrap of gcc.