I'll take a noob who doesn't understand basic syntax all day every day vs. the dev who finds a way to make everything complex. At least in the former the damage is limited.
Good dev's understand how to simplify complex problems by breaking it into smaller components. Bad devd add complexity to already complex problems.
Breaking down complex problem does not simplify it, you merely move the complexity to the graph of dependencies between smaller components.
I've seen this a lot. Where it is broken down so much that it involves mental gymnastics to follow whats going on. It also results in Spaghetti-code with fragmented functionality.
In my experience, projects using Java are the worst offenders here.