Apparently the expression evaluator doesn't know about
$(...)
, whether accidentally or by design. I guess there is some processing to parse $(...)
in the top level of Jim parsing that is not available when an expression is parsed. You might compare it with a C preprocessor macro.