ООП позволяет тут работать над состояниями однотипных, но разных по функционалу типов и иметь единое описание ф-ции, а не кучу развлечений с case of и тэдэ.
В любой обработке данных в описаном случае в ним будет геморой, особенно если изначально неизвестно на 100% что придёт в ответ на запрос, а в случае сложных типов ещё и пляски с бубном с одноимёнными полями и явные проблемы с размерами этих самых типов. Чот подозреваю что на выходе там union и соответственно размер будет максимальный по максимальному типу.
Тормозить из-за dyn ничего не будет, т.к. оверхед по переходу по vtable околонулевой в реальности-то. А вот то что method в ним сделано через жопу и реально тормозит, вот тут не мои сложности, а косяки самого ним.