I think that the use of g28 by F360 and what happens with g28 in Mach3 show how there are differences in interpretation. F360 takes a fairly strict interpretation so throws in a G91 Z0, which should mean that the tool goes to the tool change point via machine coord Z0. However, Mach3 treats G28 as "go to SafeZ, then move to tool change point", making the G91 Z0 redundant. Generally, a safe option but I'm not sure if it is documented, just what I have observed. As it happens, my favourite tool change position is close to the corner of the bed where I normally have work zero, so it's not much of an issue for me - not too much unnecessary tool travel. Remember that it is easy to set the g28 position so if you are doing a big job, it might be worth temporarily changing it.

I'm guessing that for this F360 CAM you have the clearance height (is that the right one?) set to 15, so as far as F360 is concerned, this is a safe z value.

My personal bete noire is the M6 start/finish macro sequence, because what I want it to do might vary according to whether I shall be doing a tool height set/reset in the middle of it. Still working on that one. Especially when you find that the CSMIO plugin doesn't do what it's supposed to...

What it comes down to is that whoever writes the post-processor/Mach3 gcode interpreter etc has their own mental model of the "ideal" work flow, which is a bit of a pain if you work differently