Why has it done so well? Perhaps because it's not really a Bond film at all. Skyfall has taken a tongue-in-cheek action franchise with a protagonist who is known for his callous nature and has turned it into a gritty drama with a protagonist who struggles with his feelings. It has taken a character who is famous for never falling in love and made him fall. It has taken a formula with strict limits and has made a point of transgressing them. It has surprising bits, sure. But it's easy to be surprising within a franchise if you're going to utterly depart from the blueprint that defines it.
A cheap trick perhaps - but one which has worked with the box office, and the critics. At the moment we love dramas and flawed, human characters, but we also, nostalgically, love James Bond. And this is surely the formula: take a name everyone recognises and put it to the kind of film that is fashionable now. Disney, with their recent purchase of Star Wars might just be on to a winner.