"long shaken their heads at the profligate ways of modern engineering"
The real problem is that it's not engineering -- it's clusterfudging. Software development ceased to be engineering when the microcomputer took over from the mainframe and mini. Those were programmed by experts aware that, on time sharing systems, anyone who crashed the machine would be seriously unpopular with all other users. Plus they worked inescapably very near the metal so they understood the technical implications of their code. The "micro revolution" was, however, driven mainly by self-taught kids in back bedrooms who had unlimited enthusiasm but neither the ethics nor the technical mindset of the engineering discipline. (I know, I was there, but was fortunate to have had a scientific training which imposes the same discipline).
The parsimonious use of memory at that time was not a matter of judgement, or even choice. It was forced on those writing code by the cost of memory (e.g. £1.60 + 15% sales tax per kilobyte from Watford Electronics in August 1982). So it was done, but without being any fundamental concept that would stick when memory became more plentiful and cheaper. Unfortunately, by virtue of the commercial success of the resultant negligent approach, there's never been any incentive to professionalise micro software development. Indeed the opposite has to a great extent occurred -- witness the deprecation of C as a "hazardous" language in favour of newer languages that prevent the making of basic coding errors -- seemingly eliminating the need to pay strict attention to what one is coding.
The details may be open to argument, but the basic truth exists that software development is not yet an engineering discipline but absolutely must become one. Not only bloat but fragility and vulnerability have reached utterly unacceptable proportions given the extent to which we rely on software to keep our societies running and safe. In all established branches of engineering (even down to gas fitting and plumbing) there are formally ratified mandatory standards that must be met. We need the same for software development in any domain where personal privacy, business security, livelihoods or lives could be affected by inadequate code. And almost inevitably, such standards would drive down bloat, as excess complexity is itself a primary source of the relevant hazards. Bluntly, we have to train would-be software developers to consider carefully (and feel responsible for) the implications to the end user of what they develop -- that's the primary principle of the engineering mindset.