It's somewhat complex because $insong.pos and /splay with a specified position are also affected by this. I suppose it could also behave differently on different versions of Windows although I haven't tested this.

Once you start playing a VBR MP3, the $insong.pos will be accurate relative to the starting point. So for example, it will increment by exactly 1000 every second like it should. But suppose you attempt to start 30 seconds into a VBR MP3 with /splay filename.mp3 30000. It actually will start at some point before or after the true 30 second mark in the MP3 file (depending on where it estimated the position to be), but $insong.pos will report 30000 and, from that point onward, will increment by 1000 every second.

So there still is some usefulness to the $insong.length value, as it will tell you the largest value that /splay will accept for the "position" field. I think it is wise to leave $insong.length as is because of this.