Использовать ли hoc если в трех местах используются одинаковый state?
Если используется Redux или другая state-management библиотека, лучше ложить в store такие данные.

Если таких библиотек нет, и компоненты функциональные, можно написать хук.

Если class-компоненты, тогда можно и HOC создать.

Можно и Context создать, но поскольку страницы разные, этот вариант я бы не стал применять.
Вот смотрите. Класс, это шаблон по которому создаются объекты. Состояние класса, то есть его поля, уникальны для каждого экземпляра. Независимо от количества экземпляров класса, его методы всегда будут работать именно с его состоянием, так как они связанны контекстом. Другими словами логика находящаяся в методах связанна с объектом класса.

Так вот хуки это попытка реализовать поведение методов в функциях. То есть определяя хук вы привязываете его к жизненному циклу функционального компонента и его состоянию. Проще говоря для каждой копии функционального компонента создается отдельная копия хука.

Из этого следует что обращатся за данными на сервер в хуке нельзя, поскольку каждый компонент использующий ваш хук будет выполнять отдельный запрос к БД. Хук это не сервис. Хук это попытка реализации поведения методов в функциональных компонентах.

Когда разные компоненты нуждаются в одних и тех же данных их получение и хранение выносят на отдельный соответствующий слой(слои). Для реакта это redux/mobx.