The difference is in the special case when the arc lost at the very end of an arc/circle then the torch is moved back to that point and the line ID is incremented to the next line.
Since the endpoint is the same point as where the next line will start it is OK. And because the line ID is incremented there will be no full circle problem.
With your recovery routine this line ID increment is missing. When the arc is lost at the end of the arc/circle then you get the position of the arc endpoint and the line ID of that arc.
So, when you move the torch back with the recovery action the machine will be standing on the endpoint of the arc, and so executing that line with a cylce start will mean a full circle for the software,
because the start point is the same as the end point which is then programmatically a full circle.