I don't have a clue as to what you are trying to saying(;-) MACH3 is a machine controller, it is not CAD or CAM. It can ONLY do what it is told to do via the Gcode program.
What is it you think Mach3 should do that it already doesn't do?
OK, understood. Let me explain.
If I define a tool diameter for milling I can get Mach3 to compensate for that tool diameter when machining a simple square. For a SIMPLE convex object in fact. Example follows.
Let's assume a 50 mm square and an unknown diameter cutter for instance (yeah, metric, but that's where I am). First, I program the control point to go around the actual square (non-minimal coding for clarity):
g1 x0 y0
g1 x50 y0
g1 x50 y50
g1 x0 y50
g1 x0 y0
Now, with any realistic physical cutter this code by itself will produce a square which is undersize. However, if I open up the tool table and put, say, 10 mm into tool 1 diameter, and load a 10 mm cutter, and prefix that code with
G0 x-20 y-20 % move to outside the square to allow a lead in - essential for g41 to work
G41 D1 % turn on cutter compensation
and then run that code, I will get a square cut exactly to size. Now let's assume i break that cutter, and only have an 8 mm cutter left over. I load it, change the Tool 1 diameter in the tool table to 8 mm and rerun the code. Behold: another perfect 50 m square.
What this means is that Mach3 can right now compensate for tool diameter when machining a simple convex outline. But it can't handle a complex and sometimes concave shape. OK. But many CAD/CAM programs can handle complex outlines and generate correct tool paths. What that says to me is that the code in Mach3 which handles cutter diameter compensation is but a limited and incomplete copy of the CAD/CAM programs. LazyCAM can handle this in most cases.
Where this becomes a serious problem is when the shape I am cutting slowly gets more complex, and the program gets more complex with subroutines. I can rely on Mach3 to correctlly handle simple shapes in a 'flat' program, but at some degree of shape or program complexity it will fail, and I don't know when that will be! That uncertainty is dangerous.
What should Mach3 do?
Well, we have several possibilities here.
1) Attempt NO cutter diameter compensation at all (rather than an unreliable version)
2) Upgrade the cutter compensation code to handle ALL cases (this is possible but may be difficult)
3) Do the best it can but alert the user at load time when the shape is too complex for it to handle correctly.
4) Ban the use of subroutines when G41 is active
Possibility 1) is going backwards.
Possibility 2) is possible (eg lazyCAM) but requires a lot of programming to bring it up to CAD/CAM SW performance. $$ implications.
Possibility 3) sounds very nice but I am not sure whether it is either theoretically possible or reliable enough. There are huge complexities.
Possibility 4) might work (I am not sure), but it would be extremely inhibiting and a serious backwards step. I write very parametric programs using lots of subroutines.
Cheers