Rosetta does work with JIT'ed code. I think the way it works is that any code in memory gets the Rosetta magic applied as soon as it is marked executable.
So it's sort of adding latency, as a trade-off for speed (once it starts). That makes so much sense and seems so obvious in a 'huh, probably never would have thought of that' sort of way!