Changing the server seed for each individual roll in itself is bad enough, since it requires the user to keep extensive records and also to change their client seed every roll to be sure that they aren't being cheated.
Good point.
On first look it may seem to be a good thing as it make everything more random.
But you're 100% right with the fact that you need to change client seed with every new server seed, which in 999dice case = every bet.
Total fairness can never go to 100%, you can approach 100% but never actually reach it. This example is just to illustrate why it cant be 100%. However the closer you get to 100% the more likely the server is not cheating.
The server can pregenerate about half of the potential client seeds. In 999dice's case that would be 32 bits which would take about 1 hour on an Intel ivy bridge. GPU farms could potentially cut this time. Important note for non-crypto people the other half takes a much longer time, each bit doubles the time so its not 2 hours for the whole space. Using a pre-generated pairing they could issue server keys based on probability that they will win skewing odds in their favor.
The risk of cheating, even in an otherwise provably fair system is > 0%.
The cost of mounting this attack in a practical way would make it less probable. In fact I believe this attack would not be likely at all. They would only have a small pool of server seeds that they have pregenerated and people would continually see the same ones and that would give them away.
The reality is that the more a site strives to reach 100% provably fair the more likely they are being fair.