У вас бессмысленное сравнение получилось. Все, что можно вынести из этого способа, это то, что экземпляры компонентов создаются вызовом React.createElement. Но это есть в документации.
Классовые компоненты имеют методы жизненного цикла, состояние и возможность работы с контекстом. Функциональные компоненты достигают подобного функционала при использовании Hooks API.
Использование
StyledComponent в функциональных компонентах не overhead. Это просто обертки над вашими компонентами. В консоли вы видите результат вызова React.forwardRef. Вызов нужен для того, чтобы передать оборачиваемому компоненту ref как свойство, иначе при попытке получить ref вы бы получили компонент обертку.
По-максимуму простые приложения это обычно Todo листы и прочие HelloWorldApp. Реально приложение скорей всего будет в разы сложней.
FLUX это не совсем MVC.