First some semantics; I use decentralization as a term that applies to both distributed and federated systems. That way the aggregate term 'decentralization' contrasts centralisation properly.
Centralized systems usually work quite well until they reach a certain scale. At what scale centralized systems start breaking down is an interesting question that depends on some variables like the underlying information technology and the cultural assumptions of actors.
Federation is a pretty simple way of solving this problem if you can somehow figure out when and how to split up the centralized system and an interface for the various central nodes to communicate.
Distribution is like anarchism, a laudable goal, but each participant must be capable of independence which may be unrealistically optimistic. Having hierarchies as actors in a network seems more realistic if we can just figure out a way to keep those hierarchies bounded.
For example I think the world would be a better place if we had put into place laws early on in capitalism that would limit how many employees a company could have to some smallish amount like 25 - 100, that way the emphasis would have been on the cooperation of small hierarchies ( = individuals in our current system). Many large companies look like this internally but the teams are not autonomous to the extent of being allowed to move across company borders.
A couple of other observations with the max employee idea: nepotism wouldn't happen (wasting a whole slot in the company on someone useless would breed resentment) and tribes would form (loyalty to your tribe and learning to work together would be paramount).
What I'm leading up to here is that ideally the issue of federation vs distribution would be handled culturally. We could have a network like maidsafe or some ethereum based idea to reach distribution automagically but I tend to think something like a activitypub based social network with lots of different social interfaces (tinder, couchsurfing, instagram, language exchange, facebook groups for different interests, microblogging - only one already implemented, second hand shopping/selling and others) then you'd subscribe to a server that'd fit your niche and someone would be able to make a job out of serving a certain community. Basically letting people decide where they outsource their server needs to instead of trying to make the jump to personal servers in one go (a la urbit). Over generations server hosting would become a family thing probably? It seems natural, we'd essentially be back to square one where your family is your social bedrock.
I'm just flow-of-consciousnessing here so a massive grain of salt please but the overarching point is that distribution vs federation is more political than technical in my opinion.