Предполагая, что это C ++, функция, объявленная как const, указывает, что она не намеревается изменять элементы данных в экземпляре, для которого она вызывается, то есть указатель this. Поскольку есть способы уклониться от этого, это не гарантия, а просто декларация.
Статическая функция не работает с конкретным экземпляром и, следовательно, не принимает указатель "this". Таким образом, это "const" очень наивным образом.
Если ваш метод не нужно привязывать к конкретному экземпляру, имеет смысл сделать его статическим.
Однако, если ваш метод полиморфный - то есть вы предоставляете другую реализацию, основанную на экземпляре объекта, для которого он вызывается, тогда он не может быть статическим, поскольку он зависит от конкретного экземпляра.