Правильность статичности или нестатичности влияет на тип функции. Нестатические функции-члены имеют неявный параметр this
, в то время как статические нет, например,
Другими словами, есть существенное качественное различие между статическими и нестатическими функциями-членами. Компилятор не может «вывести» это. Это вопрос намерений автора.
Если я хочу (и нуждаюсь) в том, чтобы моя функция была нестатической, я делаю ее нестатической, даже если она не имеет доступа к каким-либо нестатическим членам класса. Если компилятор внезапно решит сделать мою нестатическую функцию статической только потому, что он не имеет доступа к каким-либо нестатическим членам класса, в общем случае он разрушит функциональность кода.