Pros
The chance to have significant impact on products and services that are used by and are important to hundreds of millions of people around the world. And, because the company does so many different things, if you get bored or dissatisfied by what you're working on or the people you're working on, you can switch to something different very easily. From conservative cash cow with tons of process to nimble, risky startups with 5 cowboy coders, the company has all kinds of groups. The benefits are top notch - no we don't have free food but we have good food and it's not too expensive (and if we had free food I'd probably gain too much weight anyway). Also, there are pockets that do have free snacks - it depends if a group wants to spend part of its budget on snacks for the team - they typically sit in the group admin's office rather than in a microkitchen. One con is the process and bureaucracy - but the flip side is that things run incredibly smoothly. Support services, such as building maintenance & moves, IT, etc. all are well funded and make what seems like magic happen to the individual employee.
Cons
It is huge, and there are multiple groups working on roughly the same thing at any given time, competing from their own perspective. The inefficiency is disheartening although it usually works itself out in an OK way given enough time. In any huge company there are some poor managers and you hear some horror stories, although it seems like after the Vista release, many of the more senior ones were encouraged to leave.