I've seen it work, and work really well, on a team with all "A" players, and with a guy (just one of the team, not a "scrum master" or anything) who really understood how to run an agile team.
And then I've seen it fall apart, in the exact same place, because upper management wasn't getting progress reports in terms they understood.
It can work, and work well. But it's far less automatic than people think, and far more likely to turn into cargo cult agile.