When you've got thousands of dollars worth of tools at risk, you don't let software guess what to do - you can program most machine tools to damage themselves without a complaint. Software can help, but suggesting that a computer can produce a flawless CAM program for a CNC tool is like suggesting that computers should write web browsers or filesystems.
CAM programming is an art, and it requires intimate knowledge of the machine you're coding for if you hope to get a final product without too many trial and error iterations.
Your reasoning seems to be, "Since poor G-code can waste a lot of billets or even produce a hundred-thousand-dollar CRUNCH, we should write it by hand instead of generating it using computer software." That sounds exactly backwards to me.
(Computers do write web browsers and filesystems; the programs that do this are called "compilers".)
I never said they weren't! However, you still need to know about them and understand them to write the software -- and to figure out why your CNC job went wrong if the software screws up.
For instance, maybe the software is smart enough to throw a red flag if your reach length is no good for the CNC job you're going to run -- but you still have to know about it and understand the concept to set it [correctly].