A webmail provider (like Google) has to be able to see what your email is, even if only because they are sending you the HTML containing your emails
They have to store it. They have to provide a mechanism by which you can index it. They don't have to provide a mechanism to search all email on their servers, because that's not something email users want (or have access to), it's only something that they need for advertising. And it's difficult to implement. Email on Google servers is stored spread over a huge number of machines, in a number of datacentres. Implementing a search function that (quickly and efficiently and without impacting performance of email access and delivery) that lets you run arbitrary complex queries on this data is far from trivial (Google people have given some interesting talks over the years about how it works).
Everything Ive seen suggests that the Google et al taps were done via tapping at the ISP level or else sending NSLs, neither of which a company can really do much about so long as they are based in the US.
They send NSLs, and what do you think they say? The NSA says 'give us access to the search infrastructure that you've built for your emails'. Now they can run queries like 'who sent an email containing these keywords in the last year' or 'what is the transitive closure of correspondents with this email address'. If Google didn't already have the infrastructure for running these queries, they'd be able to reply 'we don't have the ability to do that and it will cost several million dollars to implement', but they'd already built it.
While Im not happy with that, I fail to see how the use or lack thereof of XMPP somehow presents an obstacle to the NSA.
If a GTalk user comes under suspicion as a terrorist, then the NSA will request their entire social graph to a certain depth. If all of they are communicating solely with other GTalk users, then just searching the information Google has gives you everyone that has talked to anyone who has talked to the person under suspicion, and so on. If they've talked to other users on federated XMPP servers, then the NSA can't do anything passively. They get the single-hop information, but because XMPP traffic is encrypted by default they probably can't get anything from the remote server by passive interception. So they have to either compromise the remote server (risky if they're discovered) or send another NSL. Both are within their capabilities, but now it becomes a matter of actively investigating someone, rather than passively scooping up all of the available data.