You've re-invented UCSD P-code.
https://en.wikipedia.org/wiki/P-code_machine
The BCPL compiler always outputs ocode. Then a back end for the particular system statically generates machine code (or assembly language)
Back in 1983 I helped take a BCPL running on a VAX and add a M6809 back end to it.
You've re-invented UCSD P-code.
https://en.wikipedia.org/wiki/P-code_machine