Хранение значения внутри метода. Хорошо или плохо?
Аккурат пример к "Replace Conditional with Polymorphism" из Рефакторинга М. Фаулера.
Да, уместно.
Вообще это нормально, если return возвращает значение какого-либо приватного свойства. В противном случае можно не морочится с функцией, а ограничится публичным свойством класса.