My opinion is that one should definately have limit switches. Before I got smart, I had several "hard stop" crashes and tore up some of the equipment through mostly stupidity on my part. EG: issued a G0 10 instead of G0.10 or something like that.
Not sure what controller program you are planning on, but if it is one that uses the parallel port, you can configure it several ways. First off, for safety, I would set them up as NC (normally closed) and they will open on activation. This way, if a wire were to break, you would stop the machine and have to figure it out. If you run NO (normally open) and depend on closure of the circuit to cause a trip, you will never know if a wire was cut or broken.
Next, is to figure out how many "circuits" you are going to need. Again one way is to have one circuit for each axis. Then how many switches per axis. It is not uncommon to have one switch per axis and have it mechanically tripped when the limit from either direction is reached. This is how it is done on my RF31 for the X and Y axis. I used a couple of mini din switches from Automated direct (that are swarf and coolant protected) and have trip levers from each direction. On the Z, I used a couple of micro-switches wired in series.
One additional benifit of doing it this way is that I also use the same switch for homing purposes and as we both know, there is not a lot of realestate on the RF-31 to start hanging a lot of switches:})