On my 3 axis router I use 1 pin for both xlimits and home, 1 pin for both y limits and home and 1 pin for both z limits and home. (Actually I use one of the home switches for each axis as both a limit and home.) However, I am using EMC2.
Usually the control software doesn't need to know whether it hit a positive of a negative limit. It just needs to stop and let you decide how to remedy the situation. Using a limit switch as home requires a little more smarts on the part of the controller, it has to know that it is homing and to ignore the limit and treat it as home during that operation. It then must also be able to back off of the (limit) switch and set the home position.