I heard an economist pose this question once. Why do companies have employees at all? Why not use contractors? Then you could hire just as much labor as you need, when you need it, then not pay for labor when you didn't need it.
His reason was the costs involved with finding contractors then negotiating agreements with them. I think there are other reasons, but for sure that's part of it.
But I think technology is pushing us into an intermediate position between the semi-permanent, often lifelong employment of a generation ago, and a world of contracting for everything. I think this is evidenced by a pattern I have seen where companies who are currently successful lay people off. It's not just in the tech world, this is happening in the service industry too.
When technology allows you to monitor the financial performance and cost of every department in an enterprise down to a fare-thee-well, it's easy to identify people you don't need so much in the upcoming quarters and let them go. Then with Internet hiring and automated application screening it's easy to hire those positions back in a year.
Now there's a lot of holes in this rosy (for management) scenario. Automated application screening is dog shit, for example. But you can do it, and you will find people; probably not the *best* people, but then you'll never know, in fact *nobody* will ever know. People will never get to know their jobs well, but again you won't ever know what you're missing. Most of all you will never have anything resembling loyalty from the people you hire; young people these days look at every job as transient. But you can't *measure* loyalty and in most cases, job competence with any precision. But you can track costs down to the penny.