Castiel doesn't have free will.
That said, the reason I don't like the God solution is because, well, it's lame and boring. "God did it" is right up there with "a wizard did it." Pure handwaving for the sake of handwaving. There's clearly something going on with Sam's return, and just having him show up and assuming God did it doesn't really fit and makes for a real snoozefest.
Well no more then the Devil did it (which is all of Sam's Destiny. But Castiel did show free will during the 4th and fifth season. While I wish the character wasn't a part of the 6th season. He certainly had free will.