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