I've pretty much been able to work out every issue I had, and every issue I've had with Gentoo was mostly my own fault.
There have been a few occasions where an update to a package broke binary compatibility. Gentoo's revdep-rebuild utility is generally good enough to do the job, but I did run into one case where two packages changed their ABI in one update and I was stuck in a sort of dependency hell. There are two choices at that point: work it out by manually (using the list of packages given to you by portage) or take the brute-force method ("emerge world", then leave your computer overnight so it can rebuild everything). I took the latter and the system was working perfectly by the next day with no need to reinstall the system.
That's one nice thing about the installation approach that Gentoo uses. One time I wound up hosing my system's includes during an
LFS install, probably due to a type. No problem, "emerge gcc" fixed everything. One time I wound up uninstalling a dependency to something. No problem, "emerge -o
package" pulls down any dependencies for that package that aren't on the system.
I love the fucking shit out of portage; it's by far the best package management system I've ever used.
Edit: Another way of fool-proofing a Linux install is to have it start in text mode. I use ATI's Linux drivers on my laptop and, to put it bluntly, they haven't exactly been known for their reliability (though, oddly enough, they appear to be more stable than their Windows drivers now...). If I ever wind up updating ati-drivers to a version that just doesn't like my laptop, all I have to do is reboot, mask the package, and pull the last working version.
Did I mention that I love portage?