In my experience, short-term pay for contracting is great. Long-term you start to run into problems because clients come and go, you always need to be on your feet looking for a new set of leads. Sometimes you have a bad project which sets you back. Being a salaried developer definitely shields you more from unpredictability.