Being in business is inherently risky. If that hypothetical employee leaves five years later, in the middle of a critical unfinished project that she's been holding together with her unique mix of skills and domain knowledge, it will cost the company much more than $20K. Or if the company hires a lesser-qualified candidate because they don't require relocation, that could also easily cost the company much more than $20K in the long term.
Also, an employee with a stable work history isn't likely to leave quickly after finding a new job unless (1) there's something terribly wrong with the company's culture or work environment, or (2) they've been lied to (e.g., told in their offer letter that they'd get fully-paid health insurance and four weeks of vacation, only to have them taken away a few months later by a "policy change").