Should we review the code that is generated by AI? Yes, because Correctness is not the only important quality attribute. Even if we are 100% sure that AI will generate code that satisfies the specification, there are many other aspects that we would like to check.
Any software system also has Non-Functional Requirements. These requirements address issues such as the system structure, its run-time performance, safety and robustness.
There are static quality attributes such as modularity. We want systems that have low coupling and high cohesion. How can we guarantee that if we are not inspecting the code that was generated by AI?
There are dynamic quality attributes such as latency and throughput. And run-time aspects such as CPU and memory consumption. We need to analyze the code that was generated by AI in order to understand its implications in these dimensions.
Correctness is a binary quality attribute. Given a specification, the implementation may or not have bugs.
Most other quality attributes may be measured. A system may be more modular or less modular. Latency and throughput may be increased or decreased. Therefore we may invest time and effort to optimize these attributes according to our priorities and trade-offs. And this requires us to understand how the system is implemented.
Using AI does not eliminate the need to review the code. It gives us the opportunity to focus on Non-Functional Requirements and other quality attributes besides Correctness.