Zero at the bottom was just a suggested solution that I think Himy made for you. That IS a solution, but it is not a rule. There are lots of ways to skin a cat, and you have not invented a new problem. We all have the same issue to deal with. You seem to have become impaled on the 're-zeroing issue, so my suggestion is to simply walk around that obstacle and not re-zero at all.
I'll just give you a quick example of the best way to solve your problem and you'll need to do your homework from there. You need to study the tool offset feature of Mach and get yourself a couple of end mill holders for whatever spindle taper you have.
Example: you have one endmill holder with your roughing endmill. You have another end mill holder with your ball end finishing mill. You LEAVE these items together so that you change the holder/endmill together as if it were one solid piece.
Now, since the holder/endmill combination has a fixed length, you simply need to tell Mach what the difference is and it will AUTOMATICALLY compensate for you when you change tools and you do NOT have to re-zero. For simplicity, lets say the holder/roughing mill is zero, but when you switch to the holder/finishing mill and place the end on the same surface, the DRO now reads positive .25". No problemo, just tell Mach that your finishing mill is .25" longer than your roughing mill and when you change the tool, you tell Mach "changing to tool number 2 now" and Mach will automatically adjust for the longer tool.
That's all I have time for right now, but Mach has these features that are designed for exactly the situation you have, and it is invisible to the CAM program.