The evolution of CNC programming has gone the same path as every other form of programming. Higher level software (aka Interactive Development Environments) takes care of the lower level details and it makes for faster and more sophisticated program development. CAM modeling software designs the part and produces the 3D model along with the G-code to machine it all in one fell swoop. Machining speeds and feeds are worked out by the software from the same canned basics old school G-code programmers used. There is simply no need for the average CNC programmer to know those things. Early in my career I spent several years designing and building CAM software of that sort and over time that niche has grown immensely and made the design and manufacturing process vastly more efficient and productive.

The same is true for almost every form of programming - nobody writes "low level" code anymore and many younger programmers don't "know" the underlying machine architecture, the networking or communications protocols being used, the details of memory management, file organizations, or how it actually gets done. I cut my teeth on assembly language programming - something most younger programmers have never seen outside of a class. At one point that was a basic skill requirement for a good programmer. Now the need for people with that knowledge is limited to the people designing chips and building operating systems. Heck - in a modern operating system only a tiny portion of teh code is wriiten in assembly language and most of it is written in a higher level compiled language.

The explosion of the world wide web is another perfect example of how this has benefited the world. A modern IDE lets a web programmer build complex graphical users interfaces in a 1/10th the time it would take coding it by hand. Doing it the old way would stall the development process immensely. In fact having the old skills but not the new ones makes you a less desirable candidate for employment. Despite having vastly more knowledge of the "old school" nuts and bolts I cannot compete with my son who is extremely accomplished in modern IDE's.

This is the nature of digital computing and has been for the last 50 years. Machine coding has replaced human coding at every generational cycle of software development and that process will continue for the foreseeable future. It doesn't make modern programmers any less accomplished than their predecessors - they simply work on a whole new level of issues many of which would confound the older generation.