However moxie seems to have an outdated form of federation in mind when he gives examples of IRC and email. While it is true that these technologies have been quite rigid, there are other examples of distributed technologies that are quite flexible in implementation. Bitcoin and Mastodon are examples where changes and updates are pushed through regularly.
The determining factor seems to be the amount of control the principal developer holds over the ecosystem. Mastodon instances basically all run the same code, and (mostly) everyone is happy with the direction they are going. Thus, Eugen pushes a new release, everyone runs it, and protocol changes can propagate throughout the network. Old nodes get left behind. However, say Eugen (or Signal) massively screws up, and they get forked. Now, any protocol changes must be adopted by both camps (who by definition have differing philosophies) to be fully applied.