In general, an interpolation with single $ in :(:($x)) should not interpolate the value of x (which is 2 in the above example).
Since the manual doesn’t mention the case, is this rule special to Meta.parse() function?
You might also be interested in the Meta.@dump macro, which prints the AST you give it, so you could do e.g. Meta.@dump :(v = $x) to inspect the AST. If you want to know how these are actually generated internally, I’m afraid, you will have to learn Lisp.