The most interesting thing with self-compling these days is that you can, build configuration permitting, remove dependencies/features you don't need out of software you use. Gentoo's useflag system is very good for both configuring this on a system-wide level but also per package. It makes the binaries leaner and from a security standpoint it can reduce attack surface. (can't exploit a "feature" that doesn't exist in your local build) Most binary-only distributions tend to one-size-fits-all builds of software packages that often pull in a lot of unnecessary crap most people won't ever need. This also works the other way around with some software, were you can compile in features packages in most common distros usually don't have. All in all, you're less dependent on what the package maintainer thinks is right. With a source-based distro like gentoo, it's also easy to apply your own local source patches to the software running on your system. For example I once wrote a small patch for a program to switch the mouse buttons (for which there was no configuration toggle) and recompiled. Now that patch will always be applied to all updates to that software as long as it's compatible to the code. This would've been a mess to do in a binary distro in a distro-friendly way.
nvidia driver blobs used to be in the "just works" category and then gradually got worse and now the AMD drivers are a lot better, even for old graphics cards. Nvidia has also a "It doesn't work for you? well go fuck yourself" attitude both to the linux kernel and it's users. That being said, both drivers continually have random weirdness with X11, which also is to no small amount the fault of the x11 maintainers which almost seem to break stuff on purpose.