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:
//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.