Maybe this is a solution:
default: 1% donation + miner hashrate/total network hashrate fee
Only the donation part can be changed. The fee part is fixed.
=>
Topcontributors pay higher default "fee"
#1: 5.16% (1040 TH)
#2: 4.20% (805 TH)
#3: 1.72% (180 TH)
#4-6: 1.44% (110 TH)
#7-9: 1.34% (85 TH)
#10: 1.28% (70 TH)
...
#20: 1.1% (26 TH)
...
#50: 1.02% (6 TH)
...
#100: 1.01% (3 TH)
...
#1000: 1.00% (0.5 TH)
...
What will be the result?
The small miners (>#100) who are lazy or do not know how to sign messages, will donate 1%.
Some of them will knowingly not change it, because they want to donate 1%, others will maybe change it to 0.1% or just 0%.
The fact that there is a default donation, will result in people thinking about the costs of running a pool and maybe lower it, but not to 0%.
The medium miners (> #10) will probably have the same behaviour as the small miners, although I guess more will lower the total donation to 1% (so lower the donation in a way that donation + fee = 1%) or even lower. These miners are experiencied and most of them know how to sign messages.
But these miners are most likely individual miners and some of them like their stats centralized, so they will not "split" their miners to have a lower total fee.
The large miners (< #10) will probably split the miners to different accounts. But for example splitting 100 TH in 1000 * 0.1 TH to avoid fees takes too much time. So they will probably split their farm in 10 => 10 * 10 TH => 0.04% fee will at least be paid (if we assume the manager will sign 10 messages to lower the donation from 1% to 0%)
To conclude:
You will get a lot of 1% or other small donations from small to medium miners and at least a small donation from the large miners. For small miners there is still the possibility to mine at 0%.
What do you guys think?