This has turned into an interesting conversation. If we (humans, and ultimately computer/software programmers), create better (perfect) software, we would not have to do that. As our software requests (which are features in the PBX world) get more and more, it becomes hard to create a bug free system.
Imagine if we only had DND, CF, and voice mail. There wouldn't be much to that system and would probably tick for ever without a reboot (oh wait, that's what we call a Key System?!?!?!?).
In my opinion, our software will get better over time. New features are always going to happen, but as we come closer to SIP (and SIP based routing) the features will either work perfectly or not at all, as they are industry standards (i.e. the feature will have to work to open standards, and tested to meet them!).
Just my two cents