Am I the only poster who will stand up for the response "Who cares"?
The transistors analogy and, especially, the bridge-and-girders analogy, are just terrible analogies. To the customer, the cost of having legacy dead code sitting there on the hard disk is zero. The incremental cost of duplicating that dead code is also effectively zero. Software is unlike every other engineering problem for this reason. (And probably other reasons.) In other disciplines, it costs real resources and affects the working systems' performance if half of the material in the system overall is not used.
Even if it were a problem, it's mitigated by, as mentioned above, the compiler not even compiling the dead code, in many cases.
The actual cost is to those of us who have to maintain the code, or create new projects based on the code. As mentioned in other responses above, the learning time and workaround time is the bad part. But, we're basically paid by the hour, when it comes down to it, so wrap the code up and treat it as a black box and move on! Ship quickly! I know we all want elegance but our job, really, is to ship working systems quickly.