A minor correction, Rosetta 2 is binary translation, not emulation. In most cases, after a one-time translation, it's running as a native ARM executable, with less runtime overhead than emulation.
It'd be interesting to know how close the code quality is to what you'd get from generating ARM code from the compiler. The jump from compiling to the M1 may not be too big if the translation is good.
Another question is whether it's equally able to take advantage of the specialized execution units. It'd be interesting to know whether the native M1 compiler can target those units directly or if they're mostly used by Apple's libraries. I'd bet on the latter, although since there's no overhead of transferring data to the GPU, I wonder if there's any opportunity there to expand usage there.