LLMs for code are leaky abstractions. They work many-a-time. But when they break, good luck fixing it.
yann-lecunn also put it well. If something works 95% of the time, and you compose it 10 times, it only works 59% of the time.
In the real world of software engineering, we cannot build on something that works 95% of the time reliably. And LLM apologists will immediately say that code written by humans has bugs too. Of course it does.