You are simply appending things together to create a text string which happens to begin with a percent sign, and not checking the contents of the variable. It's the difference between:

Code:
//if (       $+($,version)    > 7) echo -a match | else echo -a not match $v1 vs $v2
vs
//if ( $eval($+($,version),2) > 7) echo -a match $v1 vs $v2



People sometimes use $() in place of $eval() but that can be a little harder to read.