Pros
You typically stands at the frontline of technologies. You have relatively easy and direct access to the source code, spec, and the people who wrote those code. You can get information outsider may not get. There are also lot of training programs and knowledge sharing through various technical discussion alias. In one word, best place to learn Microsoft technology stack (of course). You get chance to work with smarter people. You benefits from it by pushing yourself beyond the limit. Of course you also have to work with mediocre ones as well. Great benefits package.
Cons
With the expansion, more and more bureaucratic and politics, less and less innovation. Now there are plenty of people working on internal development and release process, rules and guidelines, way too many of them are invented. There are redundencies, waste of resources, both by developing them and time spent to learn and adjust to thm. Every couple of years, it is definitely there is new internal tools and processes replacing old ones with no good reason. Now it is evident that to advance your career you need to go with managerial track, where senior technical people now spend time do adminitrative work. Also people good at political game get promoted fast. People can argue this is inevitable to a big company, but no one can argue this is a good thing to a techincal company.