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