Glad to see you are looking into this.
!what's the reason the scripting engine is doing this check on variable command etc, inside identifier's parameters? I don't understand how it could be the case, especially with the fact that it can be anywhere, not necessarily at the beginning of the parameter.
I understand that those commands must not evaluate the variable name passed to the command while evaluating the rest of the parameter but I still can't see how that would result in the current behavior being reported here or why it would be tricky to fix this issue, in other words, would it break the scripting engine to remove this check on identifier's parameter? it seems it wouldn't, from a naive/external point of view.