When fetching a user's data from some other source, it's always best to fetch it frequently to be sure that it's up-to-date. If you were to fetch it once and store it, then it'd be out of date if they decide to update it on whatever source you originally fetched it from. In fact, some providers have it in their terms of use that you shouldn't the data you fetch long-term.
That said, I'd also avoid making unnecessary remote calls. I think there'd be nothing wrong with doing some sort of caching of the data and only re-fetching once per session, once per day, or some other frequency to avoid making long-term calls. Or you could just use Spring 3.1's support for declarative caching.
Craig Walls
Spring Social Project Lead