Vantaggi
They don't get trapped into thinking their way is the best/only way to do something. They encourage thinking about new technology and how to leverage it to improve the existing design. For me a benefit is the relaxed team atmosphere. I have people to go to for help, but each piece is independent so I'm not constantly having to negotiate around what other people are doing.
Svantaggi
The teams are very independent and it's a bit difficult to get the feel of how one part connects to the system. Internal documentation, while improving, is still haphazard. The pace is such that the documentation gets pushed off to the side, and then all the sudden the team is done with that system aspect and you still don't have doc's on the design or cost/benefit. It's aaaalllll database. And, while this is great for some people, it gets repetitive after a while.