You can write documentation on something and still have it be very hard to understand to the point where other developers can't understand.
Say it's a start up in the first two years of doing business. You're going to rewrite a stable money making functionality just because one guy wouldn't document the code? That's just plain stupid.
Also a smart programmer wouldn't have to reverse engineer the code, THEY GOT THE CODE. Also who says you're going to find a smart programmer? You've burnt your bridge before you've crossed it.
Some people are that special as shown by multiple companies doing this in multiple sectors. Life isn't fair, it doesn't work the way you think it should, it just keeps on rolling with people generally taking the safest option for them to succeed.
It seems like for those folks, the most important thing is to be irreplacable. They like being needed, they like being a key person in the operation, more than they like money or doing a good job.
Anyone who wants to own some part of the business that thoroughly is a liability.
It's not unheard off. Personal Anecdote: I've known a friend, who keeps the most obnoxious programmer around at his company because he wrote the core money making algorithm by himself and is the only one who understands it. The ceo actively protects other employees from this programmer, but won't fire him because they need him more than anyone else at the company.