Essa abordagem de buscar as rotas que irá renderizar no menu é muito interessante. Mas um dúvida que eu tenho é que depois de receber os dados de quais menus pode ser renderizados na rota de buscar menus, esses dados, podem ser capturados e modificados antes de renderizar o frontend? Ou até mesmo invejar um novo array e ir testando quais combinações aparecem novos menus? Pois se uma dessas duas opções funcionarem, fica meio que sem sentido usar processamento da api para fazer isso.
É interessante buscar também as rotas que aquele cliente pode acessar no front, aí já vira meio que uma primeira validação no frontend antes de tentar acessar uma determinada rota.
Em relação a componentes na tela fica meio inviável fazer isso, acredito que até atrapalhe em uma possível manutenção no futuro.