Если для вас очевидны преимущества заранее откомпилированного кода и неудачность применения скриптовых языков в конкретной задаче - вы уже давно можете взять С++ и не задавать наивных вопросов.
JIT появляется там, где язык, первоначально не предназначенный для тяжелых задач, развился настолько, чтобы сунуться в эту нишу. Причем, как выше уже отметили, JIT даже в этом случае - не единственно возможное решение.
Кстати, бывает и наоборот - в С++ для интерфейсов притаскивают JS, а для динамичной логики - Lua, потому что ресурсы по факту копеечные, а в гибкость очень хочется...