One difference is that clichéd prose is bad and clichéd code is generally good.
It can be addressed with prompting, but you have to fight this constantly.
This is one of the problems I feel with LLM-generated code, as well. It's almost always between 5x and long and 20x (!) as long as it needs to be. Though in the case of code verbosity, it's usually not because of thoroughness so much as extremely bad style.
1. Take every single function, even private ones.
2. Mock every argument and collaborator.
3. Call the function.
4. Assert the mocks were called in the expected way.
These tests help you find inadvertent changes, yes, but they also create constant noise about changes you intend.“Mock the world then test your mocks”, I’m simply not convinced these have any value at all after my nearly two decades of doing this professionally