Build abstraction around FFI to allow the engine to "run" via FFI, but compiled code can bypass the FFI layer. Meaning, the JIT/AOT compilers must know enough about this FFI abstraction to be able to compile it away.