I would love to work for myself, and even recently tried being a freelancer for 3 months earlier this year. It didn't work out quite like I hoped, and after I got a good offer from a good company, I went back to full-time salaried employment.
These are the negatives I experienced while freelancing:
Writing code has become a commodity
Let's say I can make $X an hour (average) on salary. Insurance benefits, stock options, bonuses, etc., generally make that $X * (1.2 to 1.35) or so, let's call that $Y. Here in the US, as a freelancer, you pay approximately 7% higher taxes (you pay the extra Social Security your employer normally pays). There is also the time you spend networking and bidding which you won't get paid for, and the cost of equipment. So, I would give $X * 1.5 as my standard rate, and I would be negotiable down to $Y. Most contacts I was getting for work would tell me their budget was $X * 0.75 or less.
Of course, they shouldn't be budgeting at an hourly rate, since they have no idea how efficient I would be nor how much better off they would be with code that would last with their business, but I didn't have the time to put a case together to attempt to convince them otherwise.
I also bid on several projects online at a rate that would be sustainable for me ($Y), but I simply didn't get responses. Online was even worse because I was competing in a real commodity market. There were people from who knows which country where the cost of living is much, much less, with much less experience, bidding at probably 6 times lower or more than I was.
It's just not fun to work in a commodity marketplace.
Networking
I have many contacts, but just didn't have enough to consistently get work. This is a sub-point of commodity coding — if I was making much more per hour than on salary, this wouldn't be an issue, since I could spend a lot of my time networking and finding new jobs. As it was, my margins on jobs I could get would be too thin to spend much time doing anything else.
Disposable projects
I like being able to build efficiency by spending time here and there on architecture, tools, and simply becoming very familiar with the project. When you are working on projects that are only 40-100 hours each, you probably aren't going to be able to gain much efficiency over time, unless you are using your own frameworks for all of them, and even then, project knowledge doesn't really help you from one to the next.
When working at a company, on a team, you are (hopefully) building more for yourself and your career than just a checklist of past projects you've worked on.
I had one large project during the 3 months that I worked as a freelancer (I left my previous job by choice, hoping to really start working for myself). Around the time I got paid for that job, I got two offers from good companies that were better than my previous job, and I decided I couldn't pass it up.
For these reasons, I can't see myself going back to working on my own unless I've got a software product of my own to build a company around. And that I would love to do.