I work with Fanuc and ABB robots, they have absolute encoders. If the home position is lost due to a failed backup battery or disconnected cable, I can restore the zero point for each axis by lining up indicators on each axis. The control then goes through a procedure moving each axis a small amount, presumably searching for the closest major division on the encoder. Once the zero point is set no further calibration is needed as long as there wasn’t any mechanical damage that caused the robot to loose its zero position.
No limit switches are used, the same procedure is used to set the zero position on every other machine I have worked on that uses absolute encoders, you line up an indicator and perform a zero return. I don’t have experience with absolute encoders in Linux cnc, but I imagine setting the zero position is very similar to any other machine controller, it should be a function that is baked in, but I don’t have any experience setting it up so I can’t help much.
With absolute encoders the machine remembers its position when turned off, and knows if it has moved without power. There aren’t a lot of reasons to re-zero a machine with absolute encoders, so home switches are an unnecessary cost and use up IO unnecessarily. In the rare instance an axis needs to be zeroed, the indicators are more or less a manual home switch.