Second, management's job is harder because no one ever has the answer. They are constantly stuck training every employee on the most basic historical project knowledge. I would wager that most projects are enhancement projects - moving from one version of something to another and not replacement projects. In enhancement projects historical knowledge is vital, in replacement projects it isn't.
There are more than these two reasons - bottom line, it's important all around.
Not that contractors don't create arcane code, but at least they should feel professionally obliged to leave understandable code behind. They know they'll be leaving, whereas employees can count on being around.
I don't agree with that. A lot of employees don't expect to be around that long, because they know that they can get better raises by leaving than by staying.
Also, as the employee's institutional knowledge rises, that employee has a higher likelihood of getting shunted onto "critical" maintenance projects and support, which tends to make them dissatisfied with their work and therefore prefer to leave.
I've run into that one very often.