Almost all relevant x86 distros have arm64 builds these days as well and once you enable Rosetta 2 you will be able to run x86 binaries/docker containers on them, but the Linux kernel remains arm64.
Otherwise, it is just using qemu interpreter to emulate x86 in software.
Biggest thing is that I don't want to get stuck rebuilding software from source because the package maintainer didn't make an arm64 binary.
Rosetta2 on my host OS enables the guest OS to run x86 binaries... that's interesting, I'll try it too, but I'd be surprised if it's truly hassle-free. At the very least would have to reconfigure apt-get to allow x86 binaries. Then idk about dynamically-linked x86 libs (I'm not a Linux expert).
I'm sure you can make apt work in a multilib world, but the mainstream way it generally works well is you stick to distro's arm64 packages (pretty comprehensive; arm64 is not some esoteric arch) for the most part and they work just great and you use/build docker containers that might be x86 and that is supported by `--platform` switch once you get basic stuff configured.
I suspect if your use case is more esoteric, it's likely not going to be worth the time. I'd just SSH to a second linux box.
To correct your statement on one key thing: Rosetta2 in this case is not running on host OS. Apple provides a Linux version of Rosetta 2 which runs inside your VM and is registered as a binfmt interpreter for ELF x86 binaries[1]. This is similar to how `wine` or `java` or `mono` can execute their respective binaries directly.
Oh, but Apple Silicon isn't the same kind of arm64 those builds target, right? Like, I don't see how you can run any kind of Ubuntu on an AS Mac without emulation. Unlike Asahi which is actually made for Apple Silicon.
Apple Silicon uses a standard arm64 target, not some esoteric thing. Not sure which Raspberry uses what, but it is the same thing as Amazon and Google cloud servers. You can run the Debian or Fedora arm64 images as guest OS without modification.