This is not comprehensive because you need to do your own homework. This is the problem nowadays, people just wanting to have a quick solution without understanding how anything even works. Exactly that attitude brought us shit like systemd.
for starters, -consolekit -policykit -gtk3 -udev -pam
then mask
sys-apps/systemd
media-sound/pulseaudio
sys-apps/dbus
sys-fs/udev
sys-fs/eudev
sys-auth/polkit
sys-auth/consolekit
sys-auth/pambase
(before you follow the last three mindlessly do your reading. Find out why they are bad. Find out why you don't need them)
If you don't want to use gentoos main init system (I wouldn't, it's overtly complicated garbage. It's also probably garbage on purpose because the person maintaining it is involved with systemd)
sys-apps/openrc
If you wanna use runit, you don't need this either. You could also make an init with it, which would be a perfectly fine classical solution. I personally like runit more.
sys-apps/sysvinit
If you're also like me and dislike gtk 3 and the applications using it:
x11-libs/gtk+:3
(it also pulls in dbus for a dumb reason. There's a patch floating around getting rid of that dependency)
(all versions past that one depend on gtk3 stuff, it's a good idea to make a local ebuild of that version, dependency of many gtk apps)
(You wanna keep all those packages masked so you'll get notified on updates if something tries to sneakily pull them in.)
Python 3.x is noticeably slower than Python 2.x while not really giving you any advantages as end user. You can put this into your make.conf
PYTHON_TARGETS="python2_7"
PYTHON_SINGLE_TARGET="python2_7"
to stick mostly with python 2.7. This is not possible for some packages anymore, so in package.use you put
(name of the package) python_targets_python3_6
or
(name of the package) python_single_target_python3_6 python_targets_python3_6
depending on what portage complains about.
Find out how to do a static /dev or how to use mdev. Both is easy if you do your research and know anything about linux. udev/eudev is terrible, convoluted bloat. Set up runit for your system and your needs by manually writing the boot and shutdown file. It's literally AUTOEXEC.BAT. Again, not hard if you know how to linux. Build a custom kernel for your machine, add the needed firmware blobs in. Get rid of pointless complexity like initramfs and enjoy putting /usr on it's own partition again if you want to.
Now that you've got rid of most of the cancer, you can also put this into your make.conf
INSTALL_MASK="/usr/lib/systemd/ /etc/systemd/ /etc/sysctl.d/ /usr/lib/sysctl.d/"
explanation: some programs put files down (mostly configuration) for systemd anyways, no matter your use flags. That'll stop packages from doing that.
If you follow these guidelines you'll end up with a working and slim gentoo system that avoids a lot of the modern garbage. Now it's up to you to find programs that are lightweight and don't depend on any of that stuff. Some ebuilds are very lazily put together and have dependencies the programs really do not need. It's easy to make a local version of the ebuild and edit those dependencies. Again, do your own homework, it isn't hard.
Or stick with what other people decide for you. See if I care.