Ответ на ваш вопрос: да, вот что означает цитируемый текст.
JIT проанализирует все загруженные классы. Если он может определить, что существует только один возможный метод, который можно вызвать в любой заданной точке, он может избежать диспетчеризации и (при необходимости) встроить тело метода.
В отличие от этого, компилятор C ++ не знает всех возможных подтипов и, следовательно, не может определить, можно ли выполнить эту оптимизацию для (виртуального) метода. (И к тому времени, когда работает компоновщик, уже слишком поздно ...)
В других ответах говорилось, что вы можете выполнить эту оптимизацию вручную в C ++ ... но это предполагает, что вы (программист) можете выполнить анализ самостоятельно и изменить методы с виртуальных на не виртуальные. Но если вы ошиблись, у вас есть ошибка, чтобы отследить.
Кстати, мы можем предположить, что эта оптимизация имеет смысл для среднего Java-приложения. Если бы это было не так, ребята из JIT-компилятора не реализовали бы это. В конце концов, бесполезная оптимизация только заставит Java-приложения запускаться медленнее.