Limit switches at one end of X and Y to act, mainly, as home switches, plus one at the top of Z travel, is a reasonable minimum. If you set up your soft limits properly, that's probably OK for a machine that also has physical limits to movement. Soft limits will stop the machine running into the physical stops except in cases of major failure, but home switches are pretty much essential for ease of use. It's really valuable to be able to hit a button, home all axes, and work from a known machine position. Doesn't really matter if the home switches are at min or max travel, or a mix of both. Can configure Mach3/LinuxCNC to suit. However, limit switch at bottom of Z travel isn't of much use as there isn't really a definite "bottom Z travel" position. That's why you normally home Z to the top of travel.