In this case, you could probably just impose a severance if an offer is terminated before X days (say 40) on the job without employee malfeasance; the problem with banning revoking offers is that the downside is very large. If companies had to pay out a few thousand bucks every time they screwed up like this, they'd have to be more cautious, but I don't think it would tip the scales towards not hiring at all or depending on consultants, etc. To avoid excessive moral hazard, the severance value should be calculated based on (X - Y)/2, where X is the minimum days worked and Y is the actual days worked.