The ability for a program to check itself for dependencies is not as intensive as you all make it sound. It's usually a fairly small piece of code that just checks the "big picture" items and spits out an error message telling you which items aren't enabled/etc.

The harder part is having the engineers spend the time in order to determine what the actual dependencies are. This involves code audits and regression testing that may or may not be part of their normal development cycle. Plus the management may decide that such a use of the R&D budget is not profitable because the system programming is to be done by installers that will have learned the dependencies either by trial and error or certification.

The other issue is like hal said, there is no real way to verify a complex dialplan/programming. This gets even more difficult if not impossible by VoIP systems that are capable of higher levels of integration beyond just SIP/TDM endpoints.