Я кстати часто так и делаю. Завел какую-нибудь прослойку типа Catalog, которая наследует BaseController, туда вынес всякую специфическую дребедень по каталогу. А потом уже от него всякие контроллеры категорий, разделов, новинок, брендов, фильтров. Аналогично по юзерам - завел прослойку, которая чекает юзера, получает его данные или куда-то редиректит - и от нее уже все страницы личного кабинета. Это же как минимум удобно, быстро и понятно