Why would this not work:
p2pool spontaneously splits itself into separated sharechains in sympathy with it's overall market share, with the objective of keeping the share difficulty as low as possible on one chain. That way, the pool can expand beyond that stage where the share variance becomes too high for entry level miners. Which pool a miner is assigned to at any given time is random, to the extent that the practicalities of competitive pooled mining need observing (healthy range of hashrates within a given sub-pool, sensible minimum time hashing on a given chain, etc).
I understand that larger miners could try to game that system, but there is a limit to how many controllers with their own NIC and/or the number of VM's running through each, the amount of work required, and the various extra overheads needed, I can't see large miners exploiting that to any significant extent. It's more productive to concentrate your resources on simply improving as a solo miner, not trying to fight with the lesser fauna.
Can two or more sharechains with different share difficulties be merged such that a block find on one carries rewards through on the other(s)? I ask because I do not know.
Ah, that's an important detail, and I ought to have thought about that previously....
If manual hopping between sub-chains is not possible, then from the low-block-variance perspective, it makes sense to split the block reward between all chains, but that would not necessarily scale up (all clients would need all copies of all sharechains they were not mining.... B/W requirements are low for one p2pool sharechain, but I'm not sure if multiples of that number is feasible).
So, a low variance model would split the reward between all sharechains, but would likely sacrifice ultimate scaling. Independent rewards for each sharechain could scale up well, but the variance would be similar to best-case scenario for p2pool currently. Perhaps the latter (also simpler) method would be the best compromise (and satisfies the basic objective of redesigning p2pool in any case).