Beyond that, probably the biggest single evolution was in my relationship to the work itself. In the early months and years I loved being able to go heads down on a project without ever worrying about the politics of the project or the organization: I was there to get the thing done. However, I am the kind of guy who cares about his work. Eventually I found this same experience to be dissatisfying. I felt that I was abandoning my children into a hostile corporate world with no one to look after them.
Moreover, as a freelancer you have much less influence over the product and the process. You're a hired gun. Sure, you can do a great job and collect a good paycheck, but if you love what you do it can be frustrating to have extremely limited input into decisions outside the scope of your contract.
Back to the author's very excellent point, I also found the management of benefits and finances to go from a source of engagement to just another hassle. When you are setting up your system, it's fun. When you are executing it, and occasionally screwing it up (taxes!), it's just another headache.
My recent (and limited in comparison to yours) experience is that as a freelancer demanding a certain wage my knowledge and feedback is taken in very high regard and if I feel something needs changing it has been.
The other path here is starting your own company, owning your own product. But if what you love about the freelance life is bountiful free time, that is not the path for you!
This is a big one. I semi-solved it by becoming a freelance architect/netadmin. Engaging the customer before it's time to write code can help a _lot_. Be full service! (It's also more work = time = money, too. I like money.)