-Clients can have really unrealistic expectations, and you can get fired at any time. Often they don't keep people around if there's no projects for them to join right away;
-Unless you need really specific hardware/software, you have to provide your own tools, which is fine in short term, but long term it can become a burden;
-While there are some really good project managers, others can leave you pretty much alone the whole time, and if things go bad, is gonna be on you;