Raising the level of abstraction has significant costs though. Anyone who has built a large or complex enough system becomes very wary of abstraction.
I think this is one of the major benefits of LLMs. It's far less tedious to repeat yourself and write boilerplate when doing so is a better engineering decision than adding more layers of abstraction.
Introducing LLM generated code doesn't do that in my experience.