The main flaw I see is that it wouldn't decrease variance optimally - you only have your friends mining for you, as opposed to the entire pool. You'd have to be communicating with every other pool member, exchanging PoWs, to reach the same low levels of block-finding variance, which would result in O(n^2) scaling. This may be fixable by making it so some nodes can proxy work for others - combine lots of small exchanges into some large ones, though this would probably require trusting them.
The only disadvantage to the proxy model is that the proxies can decide who you can communicate with through them. Although, this does have advantages too. The proxies could, for example, help keep cheating nodes from being effective.
As an aside, while reading this thread I couldn't help but think "This approach is to P2Pool as Ripple is to Bitcoin." Not sure whether that's a good or a bad thing.. Ripple is undoubtedly more scalable than Bitcoin.
It's interesting that you can see Ripple from this design

The inspiration for this came from first reading a lot about Ripple, thinking about how it could be implemented in a fully P2P way and then seeing someone pondering about doing a 51% attack on p2pool.
