IMHO, skip length should always move forward or backward by the set amount, limited by the playback position and track length. i.e. a skip forward by 1 minute when you're only 20 seconds from the end would result in a skip to the end of the track - playback would then continue with the next track.
I'm very strongly against any kind of variable/max skip. If I'm skipping in 5 minute blocks, I want to always jump 5 minutes (where possible). Could the prevent track skipping simply prevent skipping completely (i.e. within a track too)? i.e. make the PREV/NEXT buttons only usable for seeking. IIUC, this was originally put into study mode to prevent accidental track skips when seeking, but I might be wrong on this one. pondlife