Something the software engineering discipline seems to either loathe, be afraid of, or just want to avoid at any cost.I think it has to do with the fact that a lot of developers are taught that abstraction/indirection are good things (and to a certain extent, they are), and can be used to manage complexity; but not that they're more of a last-resort option compared to actually making the design as simple as possible.
Linus' rant about "helper functions" reminds me of a time when I taught an intro programming course and helped a student who, when faced with not knowing how to solve a problem, decided to take "write a helper function" as his mantra (apparently he read that somewhere in a book) and ended up with around a dozen-level-deep nested set of functions that turned out not to do anything useful at all - each one just called another and returned its result, except the deepest one, which he came to ask me about. He thought that the solution would somehow come to him more easily the more "abstract" (in his terms) the code became, and went steadfastly down that path - until common sense took over and he came to me wondering what he did and why it didn't work.