Pros
The perks and the culture is not only conductive to thinking and personal growth, but also fun.
Cons
While the flat structure aids quick development of ideas, many managers are not people persons and are fairly inexperienced (as managers, while they're great software engineers). For newbies this can be frustrating because of the lack of downwards managerial communication. On top of that, the lack of clear policies and rules about things like WFH and OOO while make it easier to have a personal life highlight the disparity between well-connected Googlers (who might be friends with their managers) and the others. Lastly, product/project managers, ubertechs and swengs often fight about silly stuff, leaving innocent bystanders merely confused.