Виртуальные функции работают с использованием текущего объекта для поиска правильного метода для вызова через его vtable, поэтому они могут быть переопределены. Stati c и глобальные методы не ссылаются на объект и поэтому не имеют места для хранения такого указателя на функцию.
Вы можете узнать больше, выполнив поиск информации о vtable.