Тут легко ответить на вопрос. Если весь код компилируется а elf, нахер ему вообще тогда виртуальная машина?
Не, тут на самом деле всё ок. Ты же AOTишь только исполняемую часть кода, а не всю инфраструктуру типа линковки, рантайм-вызовов типа рефлексии, цг. RoboVM к слову тащат с собой весь Android stdlib, но гц, к примеру, свой.