In VM development, we would run the version of VM being developed as a guest and if you wanted to test its guest emulation, you had to run a guest under it. When I had to do this once, I didn't want to deal with the complexity of creating a mainframe os guest like MVS, so I would run CMS as a guest. I would define an extra virtual CPU, which CMS would know nothing about of course, and SIGP (signal processor) it to run code fragments that I wanted to run on a multiprocessor guest.
When you are emulating guest stuff, VM's view of things is completely different than what the guest thinks it is seeing. So of course most new hardware features have to be virtualized if they are to be used by guests and this means recursive VM's as well. So technical discussions could be something else if there were a lot of context ans POV switching going on.
One of the software guys introduced me to VM. Once I got my head around that, he demonstrated running VM itself - within a VM. My head exploded.