Well, as suggested in another thread, there is a very real difference in performance if a fair fraction of the routing topology changes frequently v. if it is otherwise relatively static.
Imagine a node somewhere in the middle of "the action" and where there are many inefficient paths or changing paths in the mesh. Then, at any point in time, besides trying to access what it wants, it has to deal with potentially routing queries and actual data from a number of end points that can cover almost all n nodes, and it might have to pass each of those data/query chunks through multiple times since the potential number of paths being tried out (in a very bad case scenario) could be something perhaps as ridiculous as n factorial. To avoid all of that duplication, we might need to do a lot of accounting per node (trade space for time).
I think we should consider dynamic meshes for small local areas. In the case of a revolution, this would suffice to have locals communicate. Then we'd need to share key information among such clusters. This would be limited to high content information based off noisy decisions taken at local levels. At the highest level, we'd want broadcasting but of largely noncontroversial organizational decisions or news.
The mesh, for wide-scale Internet purposes, may never come close to substituting for an efficient network with a relatively static central core on an efficiency measure. But an inefficient mesh system can still be very useful in a more limited capacity during real emergencies. We also have car and 2 way radio and a whole framework that can leverage these albeit much less efficiently than would be the case with a full Internet.
[Note, that if we have very limited bandwidth generally between any two neighbor nodes, then we have to have some sort of relay or p2p system for efficiency purposes, at least in order to access highly desirable data.]