$* is an undocumented feature. That means that even if it's useful, it's not necessarily fully functional and may not be able to work in ways that you think it should. In cases where you want to use it and it doesn't work, you'll need to use other methods (looping) to get the desired effect. Being that it's undocumented, I doubt it will get an update to work better than it currently does. Also keep in mind that using undocumented features may cause you trouble later if Khaled decides to remove them. Anyhow, you can always bug report or feature request something regarding that, but I'm not sure I'd put much hope in getting it fixed simply because it is undocumented.

Just playing around with it, identifiers DO work, but $* isn't ever equal to the words being displayed. To see what it really is, use:

//tokenize 32 this is a test | echo $qt($*)
Output (4 times): "`~$*"

As you can see, the identifier only ever sees `~$*. $upper on that is the same thing, which then evaluates to the same thing and you see the words as they were entered.

That means that unless $* is redone to show the "words" to the identifier before display, there's nothing you can do with it directly.

That being said, you can always use an alias:
Code:
alias test {
  tokenize 32 $1-
  test2 $*
}
alias test2 { echo -a $upper($1) }

Use: /test this is a test