They also seem to really bias towards tacking on new code to "work around" what's there, rather than breaking down what's there into smaller more composable bits that can serve the pre-existing use case and the new requirement elegantly.
Yes exactly. And I’m not sure we want agents with that level of autonomy to decide what functionality is important and what to leave in place.
It's like we took the worst behavior of our colleagues, and went and said "yes, let's automate _that_ part" and patted ourselves on the back.
LLMs write. It sounds glib but it's what they do, and so every problem they encounter they will try to write their way out of it without lots of hand holding.