It's not inconsistent, considering that the token separation happens after the evaluation of identifiers, variables etc. This is perfectly normal, here's an example:
//var %blah = XbYbZ | echo -a $gettok(%blah,2,98)
(98 is the ascii value of the letter "b")
Wouldn't you expect the above line to echo "Y" (ie the 2nd token in the value of %blah) and not "lah" (which is the 2nd token in %blah's name)?