Suggestion: KM could have "reserved words that users cannot use as variable names" so that users won't as easily confuse tokens with variables. The list of reserved variable names would be the same as the list of tokens:
Using one of these names as a variable could bring up a unique error message, something like:
You are using a reserved variable name which may mean you are misusing a token. Please refer to the tokens page on the km wiki for clarification.
I can't see any reason why anyone should want to use a variable with the same name as a built-in token. It's an accident waiting to happen.
I realize that 80% of my ideas never make the cut, but this idea is closer to the cut line that some of my ideas.