Another disadvantage of freelancing is generally lower bar of requirements and less interesting work. There are always exceptions, of course, but it's usually mind-destroying disposable CRUD work or building iOS clones of existing web apps, don't expect to eat "rich programmer food" [1] as a freelancer. Besides, you will rarely have an opportunity to learn from other/smarter people, so growing professionally will be…
On the other hand, if you work with other/smarter people, it's also possible to end up not really doing as much challenging work, as they'll take over anything you see as too 'difficult' or too much effort to learn. It's definitely recommended to learn from others, but you have to make sure you're not just letting them do all the work.