I don't think Delphi is smart enough to make a direct call like that.
No it does not, or at least didn't (I more or less stopped following the progress of Delphi after that unpronounceable named company took over).
But that is imho besides the point. Whether the compiler has some nice trick up it sleeves to do as you want does not matter as behind the scenes it would have to do exactly the same as shown. It is the normal way to setup a jump table (that what you refer to as proxy) that can be used to plug-and-pray. There can be found many of such plug&play 'tables' in the FPC tree.
The only other way I am aware of, but being even more ugly and for sure more bloated, is that you can lookup the addresses and the parameter list using debug info (can probably be done using (extended) rtti as well). Some scripting languages seem to be using the rtti route to locate the required information.
You could always try a feature request though I am not sure it would serve enough purpose for it to be justified (in the eyes of the judges).