Say you going to use one tool to turn and face both sides of a part; (Why use two right?)
there are two ways to setup a machine depending on the controller.
First way you have tool T01 and T02 set up with the same X offset but the Z offset will be the amount you leave for the second side. (Say .060") Now on the first side the finished face is set to zero for T01. After machining the first side and you flip the part now the finished face using T02 on the second side is Z zero. Now in production I can check the tool setup page and assure myself that they are still set at the amount I want to leave. If they are not its time for a refresher training.
The second way is using the same T01 tool but you call up offsets to use such as T0101 or T0102. And they are the same in X but different in Z by .0600"
They both work but on a turret machine or a machine that indexes tool slots, guess what; it indexes so in that case you have to use the second method or you would have to have multiple tool with an offset for each tool. I don't like to have multiple tools of the same unless I am running high production and have a tool management system. (After so many parts it uses the alternate tool)
I'm not big on having ghost numbers (tools that I make up just to get offset)
You could use G10 to grid shift everything but that's not a good way to handle tool setups.
Of course you could work offset for each side. But it is not usually customary to program that way due to operator overload. And on Fanuc controls additional offsets is an option that they make you pay for. (And it is not cheap) Most never buy that option on a turning center, where on a Mill it is part of the package.
Oh ya G10 is an option that has to be bought too. along with background editing which I love.
So it comes down to the type of tool offset package is contingent on how the tools are loaded, turret or flat sliding table.
I prefer the second method because it makes more sense to the operator to call it the same tool, but have different offsets depending on what feature he is machining. Because generally we only let them change wear offsets and limit to relatively small increments. Thus protecting them from moving to far to fast or fat fingers. For the most part I can walk up to any controller and tell looking at that screen the conditions of my inserts. If the wear offsets are less than half of the tool nose radius I know that all is pretty well (depending on the job and tolerances of course), but if I see a number that is high in value, I know something is not right in some way.
Proper tool setup is very critical when you are doing parametric programming using variables. Because it is easy to start changing numbers to get the part back in spec. But as soon as they change parts they are way off based on the variables saved and used the last time that part was made.
Hope that helps.