Think about it, the limit switch is not, compared to the home switch, at a fixed location.
At least not necessarily by definition.
The limit switch is simply signaling the event that a set limit has been hit. I move my limit switches when I have my 4th axis mounted, so the machine head stock does not collide, or better said, cannot collide. So the machine can know where home is and then certainly slow down while approaching it, but in the case of a limit, it has to stop dead and does not really know when to encounter that position.
In theory it would be nice to have the machine figure out where the limit is, equal to the home exploration. And then work as it does with the soft limits.
But in practice, the limits should NEVER be hit as per definition something is at fault.
And considering that, things are not going to improve from there.
I changed my workflow to tell the machine that I have home switches, then run it very close to the limit switches, note the locations, enter them as soft limits, then unleash heck on the workpiece. I have to do that as the limit switches are often triggered by the induced stepper noise on their lines. And I am to lazy to rewire right now. That method works very well, and I cannot destroy my little mill.
Cheers
Lemo