LLMs aren't good engineers. They're mediocre, overengineering, genius, dumb, too simplistic, clean coding, overthinking, underthinking, great but terrible engineers rolled into one. You can get them to fight for any viewpoint you want with the right prompt. They're literally everything at once
To get good code out of them, you have to understand what good code is in the first place and lead them to it
My experience is iterating through 5 potential options being like "nope, that wont work, do it this way.. nope adjust that.. nope add more of this.. oh yeah that's great!"
The "that's great!" made me nervous that an LLM was capable of producing code as good as me until I realized that I threw out most of what it gave.. and someone less experienced would've taken the first suggestion without realizing its drawbacks