Hi,
I've found a wrinkle that offers some flexibility if you are using modern AC servos.
I have a second hand Allen Bradley servo and drive for a spindle motor and found amongst all the other features that you can hook the limit switches direct to the drive
not the controller/BoB at all. I have since noticed that this idea is common among other manufacturers also, certainly Granite Devices, Delta, Sneider, Panasonic and Yaskawa.
The idea is that with the limit switches each hooked to their own pin on their own drive that 1) it protects the axis against out-of-bounds excursions, 2) provides a logic lockout
to the axis jog direction that would make the excursion worse , 3) signal the controller that a fault has occurred and 4) whether that fault condition is combined with others
like 'following error' or not is subject to your control having programmable digital outputs on your drive.
I believe that this idea started with the concept of 'distributed motion control' where each axis driver controls its own motion only and therefore has need of direct access
to both its home and limit switches. The combined motion occurs when the controller synchronises the individual axis movements. Ether-Cat is a prominent example of this idea.
Craig