How is the system connected, so that [x] ends as a call to VarArrayGet (a, [x])?
The compiler in modern versions of Delphi has created knowledge of the options and hard wires for the call VarArrayGet. Look at the code that the x86 compiler generates:
d := V[0];
converted to:
004234D7 6A00 push $ 00
004234D9 6A01 push $ 01
004234DB 6858AF4200 push $ 0042af58
004234E0 8D45C8 lea eax, [ebp- $ 38]
004234E3 50 push eax
004234E4 E81BD8FFFF call @VarArrayGet
004234E9 83C410 add esp, $ 10
004234EC 8D45C8 lea eax, [ebp- $ 38]
004234EF E864B8FFFF call @VarToReal
004234F4 DD1D68AF4200 fstp qword ptr [$ 0042af68]
004234FA 9B wait
There is simply no extension point for you.
Your best option if you want to change behavior is to use a run-time code bypass.