I'd like to point out some basic difficulty-related considerations here, which I believe were not mentioned in this thread. Please correct me if I am wrong!
Here's how I suggest to determine desired share difficulty. Variance of miner's income depends both on his own share generation variance and the p2pool's block generation variance. Even if you have high hashrate and generate shares every minute or so, you still get payouts only from blocks found by p2pool. One familiar with statistics/probability theory may see that payout variance ((rms deviation) / (estimated value)) after mining for T hours is proportional to
variance ~ sqrt(((miner's estimated time to share) + (p2pool's estimated time to block)) / T)
At the time of this post, p2pool is running at ~800 GH/s with Bitcoin difficulty ~10M and share difficulty ~1500. At this rate, expected time to block is ~16 hours.
At default share difficulty, estimated time to share for a miner with 1 GH/s is ~1.8 hours, which gives him overall variance coefficient ~sqrt( 16 + 1.8 ). If the miner manually sets his share difficulty to 5000, it will become ~sqrt(16 + 6), which is only ~11% higher.
Similarly, for a miner with 10 GH/s time to share is 0.18 hours, so variance at default difficulty is ~sqrt(16 + 0.18). So he can set his difficulty to 35,000, which gives variance of ~sqrt(16 + 4.2), which is again only 12% higher than default.
Only when a miner's time to share is comparable to (say, 3-5 times smaller than) the p2pool's time to block, increase of share difficulty will have considerable impact on his variance.
Tl;dr: I suggest that reasonable share difficulty for a miner is such, that estimated time to share is a couple of times lower than the p2pool's time to block. Setting it lower will harm small miners (increase their variance) without any serious decrease of the miner's own variance. Setting it higher will increase the miner's own variance.