Earlier quoted context omitted.
There's more to quality code is simple code. Some things or situations are inherently complex to handle and you may still want software for them (especially because they are complex). Simple code won't usually handle complex stuff, and you may still need quality. Now you should reach for simplicity. Which may itself be complex to define.
I agree, and to add on to that sometimes there's irreducible complexity to a problem, requiring complex code. But never complicated code: crufty fixes upon fixes, too many layers of indirection, templates templating templates; you won't need that to solve complex problems.
Three levels seems good: a solid foundation of high-quality library code; working application code on top of that; dirty workarounds on top of that.
As you say, the problem comes when you stack workarounds on top of workarounds.