In restoreMouseIfHidden(), there is a correction of the mouse position that was introduced to correct the behaviour described here : http://www.juce.com/forum/topic/rotary-verticaldrag/horizontaldrag-bug
(so that the rotary sliders do not jump when the modifier key is released)
That is ok if ones plays with the modifiers, but that mouse position correction is really annoying if you set the velocity based mode to true by default, because the mouse will never be to the last mouse down position, that is will never go back to the center of the knob.
To correct this behaviour, the cursor position correction must only take place when restoreMouseIfHidden is called from modifierKeysChanged(), not by mouseUp()
a quick way to test it is just adding a parameter : void restoreMouseIfHidden (bool correctPosition)
and adding a condition to the test line 1946 : if (isRotary() && correctPosition)
Don't you think?