Thanks for the replies. In my mind, we should always be working from 0 to some positive value as that follows the convention of most cad drawings. Using "what you see is what you get" seems the most logical way to me. The only confusion is the Z axis as (in my mind) we would set Z0 as the uppermost surface of the work piece and then anything above the work piece would be negative and a value like Z3 would mean we are cutting 3mm deep.

I'm not yet fully versed in g-code, so I guess all of this will become clearer when I finish the build and start using the machine. I'm at a difficult stage in my first build because I want to "do it right" and not have to add stuff as an afterthought, but at present am not 100% sure what "right" is.