Hi David,
according to the manual, this is apparently intended behaviour.
If you want a different behaviour you can simply implement it yourself by using the _dsdst_ xavp variable and make your own weight system.
We are simply summing up the weights of all active destinations, then calculate a hash of the call-id modulo that sum of weights. We then go through that list again, and determine which destination we want to use.
Regards Christian Berger