Edit: I should add - that when there's an orphan battle, who do you think will win?
A solo P2Pool bitcoind with 8 connections or BTC Guild's bitcoind with ? connections?
If they post them very closely together the winner is usually the one with the most connections and the fastest internet.
Edit2: and if you look at the 2 block hashes, the BTC Guild one is not the one with the harder difficulty either.
000000000000079f7e918f3fba8f758383e1061c5d4eb8b3742612dedc23c00e P2P
0000000000000c163ce8827e37bb459161e6978dc1ff0c052c53dd7f5858608a BTCG
Unfortunately, P2Pool did have an orphan block. However, P2Pool is not at a disadvantage to other pools. P2Pool not only passes block solutions to the local bitcoind, but also passes them to other P2Pool nodes so that they can spread faster. In theory P2Pool should be better for this reason. I've been working on this a bit, because right now stale shares aren't passed around, and that might have contributed to this being an orphan.
...
Actually that would only make a difference if bitcoind accepted network blocks from p2pool ...
Bitcoind accepts non-self-generated blocks from the network only.
How does that work with p2pool?
Does p2pool pretend to be another bitcoind and tell the bitcoind about the block whenever it receives a block difficulty share?
Edit: which would mean the p2pool would have to be one of the 8 (or more) constant connections to the local bitcoind.
Edit2: and p2pool would have to deal with all the normal network traffic that bitcoind handles ...]
Edit3: OK, looks like I'm wrong

Maybe you can do it with getmemorypool ... is that how you do it?
Can you feed an new network block into the bitcoind with getmemorypool?
(I've never gone near that command due to the merged-mining implications it created)
If that's the method, then that would put it back to comparing the network speed of bitcoind's block-chain versus p2pool's share-chain+rpc to bitcoind.
Got any info to decide one way of the other?