" GCC also drops support for architectures that BSD still uses; OpenBSD has various copies of GCC 2.x, 3.x, and 4.x in the tree to compile for the various architectures. Having to maintain these kinds of things redirects valuable manpower from other projects like Xorg."
This, at least superficially, appears to be a huge waste of effort. How many actual users are doing new installs using the obsolete architectures supported by those ancient compilers? Is the cost/benefit actually worth it? Would time not be better spent just using the current GCC release and making sure the architectures you really care about are supported with it? Architectures get dropped from GCC when they aren't maintained; does BSD actively maintain their supported architectures in current GCC, or does it rely on others to keep them updated? Dropping old GCCs would allow direction of your efforts to where they would make a real difference, rather than spending it where it benefits only a few.
This brings significant additional costs too. If you're using GCC 2.x, you're missing out on stuff like ISO C99, ISO C++ and its standard library, which is another case of portability blocking progress. If that's your baseline, *no one* can use C99 features in the BSD tree, or C++. And this is 12 years after C99 was adopted. *That* is blocking progress--it's directly preventing the use of standard features in our core languages.