Well, there's different types of independent contractors. Some are really the same as corporate developers, their paychecks are just processed by a different company. Some mainly do long term (6 month+) single client engagements, and some are specialists in a particular technology.
This may be an Americanism, but I typically equate "freelancing" to a solo developer/entrepreneur who works a variety of smallish engagements for a variety of clients. The rest of this comment pretty much strictly applies to the somewhat stereotypical traits associated with that role. Of course, any individual should be judged individually - but, for me at least, there are a few different areas of probing during an interview that are dictated by the candidate's background. With that disclaimer, here's my thoughts on freelancers:
Some are freelancers by choice, some by circumstance, and some are forced to it.
You obviously don't want any of the latter - there is a non trivial amount (but nowhere near the majority) of freelancers that would not survive long-term employment for either personal or technical reasons. The only way they can get by is by constantly changing employers, and staying one step ahead of their poor references. These are pretty easy to weed out with standard interview practices - which should catch the bottom of the pile corporate developers as well. A freelancer's references are usually more forthcoming than a poor corporate developer's though (who often will either refuse to provide any useful feedback, or are so happy to get them out the door they'll lie through their teeth), so use those as well if you're still unsure.
Freelancers by circumstance will usually have either a long term engagement or a period where they went from employee to freelance for the same corporation. For me, I usually treat these the same as an employee - yeah, they're freelancers, but it's not really a part of their identity.
The freelancers by choice are where it gets interesting. These are the folks who have possibly turned down full time employment multiple times, but are now looking for a steady gig. Going from freelance to full time employment can certainly be a culture shock - and you want to find out why they're making the move. I'd look at these candidates similar to one looking to relocate - you're not just judging the company fit, but trying to make a determination on the lifestyle fit as well.
As for specific upsides/downsides, it's a mixed bag. On the pros, you may find more experience/skills in:
- communicating with non-technical stakeholders/audiences
- juggling multiple priorities
- getting up to speed on a project or technology quickly
- areas related to but not development (project management, server administration, support)
- initiative
- a personal support network
- flexibility in work schedule
On the downsides, you may find:
- lack of status reporting/bug tracking and team communication
- little to no source control experience (don't know why, but a lot of solo developers don't see the need for it)
- a focus on cranking out projects, with little to no eye for maintainability
- a default resistance of "authority", whether that authority is corporate bureaucracy or a manager or a senior team lead or the team itself
- flexibility in work schedule (see what I did there?)
Which, at the end of the day, are pretty much the range of solo corporate developer traits as well.