The root of this issue is how people are using SO
Rather than "help me understand how to X works, so I can write correct code", which is arguably the right way to use the site, many people take the "I don't understand X, so give me some code to do X without me needing to know how or what it does" approach instead.
It's understandable, to a degree, when people are told by their managers, "just make it work, I don't care how." You don't get paid any more for doing things properly. It's a cultural problem, not always one of laziness on the part of programmers.