Even before LLMs were a thing, it wasn't this way: rapidly generating code was not the most valuable skill. As you say, it's much more important that the code can be confidently modified and extended, and reused, not just now, but then. In a mature product, the initial writing of the code will be the least of the work; maintenance is much more expensive. Ideally, design decisions should appear only once in the code when this can be achieved, because then there's one place to fix or one place to modify, instead of dependencies on some detail that appear all over the code. It's too easy with auto-generated code to wind up with redundancy and code duplication, resulting in a brittle mess.
I guess there's an exception for startups where you have to have something before you reach the end of the runway, and as you say, _mature code_.