I guess one resolution would be to distinguish between code and product. The code, as in the material, was always malleable. In some languages you can even change it while it's running.
The product, on the other hand, was not, and that changed with LLMs quite a bit. But the code is not the product.
EDIT: You could even argue, the code itself becomes less malleable, in the clay sense, with LLMs because now you really NEED a tool to make changes, and changing the code by hand becomes much harder. So LLMs shift the malleability from code to product.
The product, on the other hand, was not, and that changed with LLMs quite a bit. But the code is not the product.
EDIT: You could even argue, the code itself becomes less malleable, in the clay sense, with LLMs because now you really NEED a tool to make changes, and changing the code by hand becomes much harder. So LLMs shift the malleability from code to product.