Didn’t read the whole thread, but I’ll try to answer your questions as best I can.
With HOMING_FORCE_SET_ORIGIN enabled, Grbl will set the origin wherever the homing cycle ends, after the pull-off motion. I believe Grbl will operate from zero to the positive or negative max travel of each axis, depending on which side of the axis the homing cycle completes.
Without HOMING_FORCE_SET_ORIGIN, the default, Grbl will set the origin at the homing switch point, NOT where the pull-off motion ends. Grbl will still operate between zero and the max travel of the axes. So, there is a shift between origins the size of the pull-off motion when HOMING_FORCE_SET_ORIGIN is enabled and disabled.
When soft limits are enabled, Grbl does hard checks of the machine coordinate frame with each motion command to ensure everything is between zero and max travel. It should never allow anything outside of that. Just make sure that you are looking at the machine coordinate frame, not work coordinate frame.