Нет, вы не ошиблись. И ООП, и функциональное программирование имеют свои преимущества и недостатки.
Разработчик должен знать, как и когда использовать каждый стиль разработки. К счастью, C # поддерживает оба стиля разработки.
По моему мнению, и я ежедневно использую как функциональные, так и неоптимальные стили программирования, oop лучше всего подходит для сложных взаимодействий и взаимозависимостей между различными абстрактными артефактами (сущностями, существительными и т. Д.). Функциональное программирование лучше всего использовать при работе с алгоритмами, преобразованиями данных и т. Д., Например. ситуации, когда сложность утверждений, необходимых для решения данной проблемы, велика.
Я обычно использую объектно-ориентированное программирование в своем домене (сущности, агрегаты, объекты значений, репозитории и события) и резервирую функциональное программирование для своих сервисных объектов.
Большую часть времени приходит к запаху или чувству, которое лучше всего, поскольку в разработке программного обеспечения в любом случае нет четких случаев, и опыт и практика часто являются лучшим судьей для данного выбора.