The reason you saw a g40 on the control is the same reason a g90 and g80 is there , it's a default safety upon start up and similar to the safety line at the program header which cam programs usually post.

take a look at a haas manual , their manuals have good explanations and examples of g codes . Most cam software will have the option of using g41 g42 . Your lead in when implementing the comp is important . A 90 degree approach is always the best bet for kicking it in , and most controls don't like to have it kick in on an arc move . Key thing is not to have a comp value that is larger than your lead in value . If you only expect a .01 variance between cutters then a .05 lead in is a mile

A lot of programmers especially hand coders prefer to program to the center of the tool vs the edge , and use d comp to suit whatever tool is being used . Most cam software has either option .
The advantage is that the code isn't based on a predetermined cutter diameter , and the code is much easier to edit since it is based on actual part dimensions vs offset values created by the cam software .
This is in theory more true to being a diameter comp rather than wear comp , and the actual value of the ground or new tool can be entered which essentially leaves a little less room for error on the operators part .
I'm not necessarily suggesting that you do it this way but it is to give some indication as to how beneficial d comp is to use .
I'd say grab some scraps and play around and you won't be reprogramming for ground cutters once you get used to it