Я так понимаю AOT не может знать наперед на каком процессоре запускается и изза этого часть специфичных оптимизаций недоступна, грубо говоря под “общий знаменатель” множества процессоров в архитектуре.
JIT же может в моменте оптимизации получить все доступные capabilities процессора и сгенерировать более оптимальный код.