Corbet asked, "[A]re we too focused on the accumulation of features at the expense of the design of the system as a whole?"
To this question, I will opine yes, there are many in the industry who focus on adding features rather than fixing what already exists. Take udev, for example. Every time I upgrade udev in my firewall project, it's weeks before it works again. And now udev can't be built by itself; it requires a bunch of stuff I neither want nor need. GCC: I had to change a bunch of C++ source code to handle syntax changes between 3.5 and 4.3. And now 4.6 won't build old grub (last I checked).
It comes down to adherence to the old 'grow or die' adage. Far too many believe their software will die if they don't pile on the features--creeping featuritis. Far too many have forgotten the basic principles of UNIX utilities, one of which is, "Do one thing, and do it well."