AFAIK, в документации Qt, похоже, нет прямого и подробного объяснения, но некоторые хакеры Qt пытаются объяснить это :
QML скомпилирован в оптимизированный байт-код-подобный поток и выражения JavaScript проходят через оптимизированный оценщик для простых выражений.
Также существует связанная задача QTBUG Необходимо улучшить время запуска QtQuick;кешируется скомпилированный QML между запусками
Насколько я понимаю, статус QML не был полностью установлен, и инженеры не объявляют его фиксированным, поэтому у них есть свобода улучшать его в будущем.
ATM, лучший совет - смешивать C ++ с QML, имея всю логику приложения на C ++ и представление в QML, но в идеале делить на меньшие файлы QML, а не на один большой файл QML.