To me, those variables sound like things that software can do a much better job of dealing with than people can.
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.
(Computers do write web browsers and filesystems; the programs that do this are called "compilers".)
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].