Вопрос в том, насколько вот этого достаточно для того, чтобы определить, где есть VM:
> Ну VM вроде бы не такое уж размытое - на входе принимает ненативный байткод. Всё.
Мне кажется, достаточно. Если в бинарнике машинный код - VM, вероятно, не используется. Если нет - то используется.
Если этот код компилируется в машинный на старте (в рантайме) - это всё равно VM. Нам не важно, что там внутри, главное то, что программа до момента запуска написана в промежуточном коде, который может исполнять только виртуальная машина, но не железный проц.