Truly efficient FFI has to be part of the VM, you can't implement efficient FFI from outside.
> - I access data (by physical address) allocated externally
Do you really mean "physical address" here?
External data is created precisely to efficiently access data allocated externally, because it allows direct raw access to a given region of memory (sans bounds checking).