Until someone decides to selfish mine it and pool hop.
I don't think p2pool can be hopped, can it?
You can definitely withhold blocks at relatively low cost.
It wouldn't surprise me one bit if it were already being selfish mined, but I really don't know.
I am trying to remember my analysis. You can withhold block solutions from the P2Pool. You still earn revenue when other miners in the P2Pool find a block solution. Note every Bitcoin pool is vulnerable to this, because Bitcoin doesn't implement oblivious shares. Even if Bitcoin implemented oblivious shares, P2Pool couldn't support it.
In the P2Pool case, I think you can also send your block solution directly to the network? I don't remember what I concluded on that point. I think that is correct, because there is no way for the P2Pool to obscure all the block information (because there is no central party to hold it) to prevent you from sending your shares to the network yourself? But I am not sure on that point.