The Soft Limits on the CSMIO's work great and are better than the ones via Mach with the PP or for that matter Mach/SmoothStepper (unless it has changed) and likely a lot of other external controllers.
The CSMIO Know where the limits are and so will use the deceleration (acceleration) in motor tuning and will stop exactly on the soft limit using that decel. With Mach and the PP you need to set up a slow zone and you have to work that out by trial and error.
Personally I like Limit switches on my machines, I don't like to rely fully on software.
I do not have the limits going to Mach only as that again means you are relying on software.
I have my limits in an E-Stop chain which is totally hardware, ie it goes via a pilz style safety relay, that relay will stop my servo drives, take away enables from the drives and in addition will also send a signal to Mach to E-Stop, so added safety.
I always have separate homes for each axis and shared limits for all axes, this allows me to have home switches inboard of the extents and can save a lot of moving if the axes are large.
If you have these home switches stay triggered once reached then you can home from being already on a home switch with the CSMIO, It will see the switch is triggered and will do the back off move only.
Another good thing with doing that (limits being hardware operated) is it will always stop if you hit a limit even during Homing.
The way Mach works when homing is it ignores the limits, so if something goes wrong then hitting the limit will do nothing and you end up crashing the axis.
Hood