Just look at the "falsehoods programmers believe about ..." articles that pop up from time to time. There are plenty of complexities in the real world that people either don't know about, aren't front of mind when they are tackling a larger problem, or simply don't want to deal with in the here and now. Lost knowledge and new problems are part of the reason why programmers are discouraged from rewriting software from scratch and why businesses in general are hesitant to replace legacy systems that still work.
That's true, but those lists are interesting because they aren't full of things you should be learning in primary school.