1. code can be correct but non-performant, be it in time or space. A lot of my domain is fixing "correct" code so it's actually of value.
2. code can be correct, but unmaintainable. If you ever need to update that code, you are adding immense tech debt with code you do not understand.
3. code can be correct, but not fit standards. Non-standard code can be anywhere from harder to read, to subtly buggy with some gnarly effects farther down the line.
4. code can be correct, but insecure. I really hope cryptographers and netsec aren't using AI for anymore than generating keys.
5. code can be correct, but not correct in the larger scheme of the legacy code.
6. code can be correct, but legally vulnerable. A rare, but expensive edge case that may come up as courts catch up to LLM's.
7. and lastly (but certainly not limited to), code can be correct. But people can be incorrect, change their whims and requirements, or otherwise add layers to navigate through making the product. This leads more back to #2, but it's important to remember that as engineers we are working with imperfect actors and non-optimal conditions. Our job isn't just to "make correct code", it's to navigate the business and keep everyone aligned on the mission from a technical perspective.