The short of it is, on the mill, that your workoffsets become active in all 3 axis as soon as the program reads the G54 (or whichever one you are using). So, the Z work offset has nothing to do with tool length, but everything to do with reference planes.
I feel that it is good practise to set the tools to a special gauge block (something that you and your students will reserve for this sole purpose). A vertical dial gauge called a presetter can be bought to serve as this gauge. I'd be remiss to have it in the lab for fear the students would crush it.....make that "for certainly they would crush it" But, any thing can serve the purpose so long as everyone agrees that the object would be the setting gauge. Such a device should at minimum have carefully faced and parallel ends. A 2-4-6 block would work.
So touch all the tools off this gauge block. This way, if you need to add more tools, or change out a broken tool, you'll have something you can quickly set on the table to touch the new tool off of.
Now, there will be some random difference in height between this gauge and the actual top of the workpiece. This difference is, of course, the same for all the tools in the set that you have installed and measured, and so the Z component of the current workoffset serves exactly as a method of compensating for this distance.
In jog mode, switch your Position display to the operator screen. Usually your last tool will be sitting on the gauge block because you just finished measuring the last tool length offset. So, if the tool is touching the gauge, and the Z axis component of the screen display is flashing (because that is the active jogging axis), press Origin to zero the Z axis display. Now jog away from the gauge, and over to the workpiece. Touch the workpiece. The jogged value in the Z axis display will be the measured distance between the gauge and the work. You'll have to key this value into the Z work offset register of your choice, you cannot teach this position in with a single button push.
I'd advise that your setting gauge be 'tall', that is higher than your typical workpiece when clamped in the vise. The gauge should sit on the table and not on the vise. If you follow this convention, then your Z work offset component will be negative in value. If your student forgets to type in the correct sign, the ensuing accident takes place up in the air In contrast, if you pick a setting gauge that is 'sometimes higher, sometimes lower' than the work, then you run the danger, almost with 100% certainty, of having a serious crash.
Many guys will set all the tools directly off the workpiece. This is okay, but then your Z work offset component is left as zero all the time. You'll also need to redo the whole set of tool offset measurements whenever you change workpiece height. There is a potential pitfall to setting the tools off of a workpiece, especially if it has no good reference surfaces on it, or if a series of rough cut bars will be machined and they vary somewhat in height. If you set the tools on a rough reference, then face it, the reference is gone and is not recoverable. Setting up a new tool to a new reference plane while leaving the rest of the set of tools unchanged can easily result in a spoiled part.
First you get good, then you get fast. Then grouchiness sets in.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)