Yes, you are right that they allow their own JIT. Their position would be that they spend a great deal of time hardening that JIT and don't trust others to take that time. Their JIT isn't perfect of course, but they control it and can fix it fast if needed. (In their opinion.) They are really saying that they aren't willing to take the time to exhaustively test other JITs. That is a frustrating choice, but I do understand the thinking.
You raise the bigger point. Is there no way for their platform sandbox to handle the concerns? That is a great question.
>Plus, it’s not like normal code doesn’t have buffer overflows or other security issues.
I think normal code on an M1 only runs in rx memory blocks [0,1], so no buffer overflow attacks. At least not without another attack to remap the blocks. This might go back to A12 processors. M1 strengthened the model.
Perhaps with these newer processors, the hardware support can harden the sandbox enough to allow more flexibility. One can hope...
[0] https://blog.svenpeter.dev/posts/m1_sprr_gxf/
[1] https://siguza.github.io/APRR/