I remember Daniel already answered similar questions, from what I remember, the algo will redistribute the weight to a ratio of stored in 100 slots and fill the remaining slots with the first one.
So there may be a slight offset.
What you are reporting in this issue is that the distribution it not done well when there is more than 25 hosts ?
I find this statement a bit confusing : "but errors were the same when dispatcher group had more than 25 and less than 25 hosts"
compare to : "Dispatcher group must have more than 25 hosts, if equal or less than 25 than it is Ok:"
If this is the case, it seems valuable to be able to support more than 25 hosts or at least issue a warning. I will try to have a look hopefully soon, I found this algo is an interesting building block and a very good option for many scenarios. The limitations that may complicate things are sometimes introduce by code architecture that would need too much refactoring, lets see.