"Virtual Machine" doesn't place restrictions on whether the guest's CPU is emulated or not despite "CPU virtualization" explicitly meaning "the instructions are not emulated". It's a bit wonky and I wish the terms had some more separation for clarifying exactly this case.
I'm almost certain that this is exactly how it works in processor design. You start building your compiler before the processor is finished, and test it with the emulator.
At least, in quantum computing, that's how it works.