This is not necessarily the case. The large part of the benefits are to be paid in the future, and this makes it possible for the government to spend much more than makes sense on whatever the project is that the employee is assigned to. You can get into situations where the employee doesn't pass a cost-benefit test.
The contractor is less cost-effective; you get less work per dollar spent. But because you have to pay for the contractor at the same time they do the work, you aren't subject to this effect of being trapped by an illusion of cheapness.
This is especially useful when projects are wound down. Let's say you've contracted to an org for support or management on a project that you want to kill, you've already obligated some amount of funds, and you don't really want to make that organization angry by ripping millions away from them (the pool of contractors is not large). What to do? Well, you could take Joe and give him a raise by suggesting he work for the contractor instead of you directly. Money's already spent, anyways. So you save your own money that you can use for your pet projects or whatever, Joe gets a raise, the contractor doesn't get a termination that pisses everyone off. Everyone happy, right? Smh.