OK, perhaps my vocabulary maybe insufficient:
I'd like to say:
Hard limits which are security issues, of course have to be casted in hardware. Something having nothing to do with Mach at all. Mach only gets a notice that an emergency stop has occured. And, maybe if it makes sense, that a limit switch has been triggered. Anyway, it's not Mach to decide to stop the machine because this has already been done by hardware.
Hard limits I talk about in this discussion are those limit switches connected to a breakout board and to Mach which decides to stop motion by cutting clock when they're triggered. However, these limits stop motion by software anyway - so they're as reliable as every software thing, regardless if they're implemented with a ramp or not.
Soft limits I do not want to talk about at all. They're fine.
Many greetings
Nicolas