The core problem of updating federated systems is that big players can choose not to play. If Google or Yahoo decide not to support a change to email, the change is dead in the water. This isn't just hard, it's intractable.
But with P2P systems, non-reliance on peers doing anything in particular is built-in. For example, peers that don't support a change limit the size of the swarm you can peer with, but they don't inherently break the feature as long as there are some peers who support the change. Many Bittorrent clients support encryption and many don't, many bitcoin miners support alternate protocols to speed up pooled mining, and many don't.
I don't know what the implications of this would be for a system like Signal. It maybe that it doesn't solve anything; I'm just not ready to conclude that for myself yet and I'd be interested to hear Moxie's take.