Just a thought: since most systems nowadays have multiple cores, wouldn't it make sense performance-wise to run concurrent code generation in separate processes, instead of threads?
Or maybe the overhead of starting processes are too big? I guess sharing data between the processes also might be an issue :)
The concurrent JIT reads whole JSC heap and a lot of the VM runtime state. Given its heavy reliance on shared memory already, I don't think this would be practical.