Most companies do have technical career path. Being a permanent employee not only gives you the benefits (others have listed them), but also lets you work on much more interesting projects (contractors typically work on isolated projects rather than on core systems and algorithms; I know, of course, of exceptions to that but they're rare). It also frees you up of the overhead of finding the next contract.
I know many people who have done contracting and several told me a) the money _is_ very good b) other than the money, it's not worth it (stressful, uninteresting projects, high overhead).
Red Hat has a good technical career path. No need to go into management if you don't want to, and plenty of people on my team in their 40s and 50s still working happily on the "codeface".
The contracting money isn't what is was. When I started contracting in 2000 you could write your own ticket - obscene wages and all the hours you want. Now I'm an employee at the same company, and the contractors make less than I do if you add the bonus. These guys are making about 40% less than I made ten years ago.
I know many people who have done contracting and several told me a) the money _is_ very good b) other than the money, it's not worth it (stressful, uninteresting projects, high overhead).