Если что-то нужно для доступа к переменным-членам или некоторому аспекту экземпляра объекта, то это должен быть метод.
Если он тесно связан с классом, но не требует доступа к какой-либо конкретной информации, относящейся к экземпляру, то его следует сделать общей функцией (или функцией класса, или статической функцией в зависимости от того, с каким языком программирования вы имеете дело) .
Даже если это просто общая функция, есть вероятность, что у вас будет более одного из них, и что они могут быть объединены / организованы в соответствии с некоторой концепцией. Затем вы можете создать класс, представляющий эту концепцию, и сделать их общими функциями.
Учитывая вышесказанное, я больше не вижу причин для создания автономных функций.