The upshot is, you have to review everything the LLM generates, because you can't predict the qualities or failures of its output. (You cannot reason in advance about what qualities and failures it definitely will or will not exhibit.) This is different from, say, using a compiler, whose output you generally don't have to review, and whose input-to-output relation you can reason about with precision.
Note: I'm not saying that using an LLM for coding is not workable. I'm saying that it lacks what people generally like about regular coding, namely the ability to reason with absolute precision about the relation between the input and the behavior of the output.
> You’re still allowed to reason about the generated output. If it’s not what you want you can even reject it and write it yourself!
You missed the key point. You can't predict and LLM's "outcome with high precision."
Looking at the output and evaluating it after the fact (like you describe) is an entirely different thing.