Хорошо, а что делать с читаемостью/поддержкой всего этого? Если компонент мелкий то окей, а если у тебя логики на 500+ строк. В классе это все можно разнести по методам, на крайняк разбить на несколько классов. А что делать с хуками? Функция в функции в функции...
С хуками как раз все проще, мотивирует на композицию.
Маленькие компоненты меньше, и мега классы с рендер методами никто писать не будет.
А почему наследование в react не используется ты надеюсь знаешь