After playing with it for a while, it seems that reshuffling by turning shuffle on and off may be the same as just resetting shuffle mode to random. The counter for the current song will jump around both forward and back (not always though, I think only after you let a track play through). However, it appears that songs before the current song are always ones that have already been played.

Exactly what it’s doing is unclear from my limited sampling, but I would venture to guess that it’s shuffling the current song among those already played and moving the counter to that location. Ideally, in my opinion, the counter wouldn’t change on a reshuffle – songs before the current song would stay before it and songs after it would stay after it.