O problema dessa abordagem é que você expõe o ID de outros tenants, então caso o middleware falhe, o usuário pode conseguir acessar algo indevido. Além disso alguem consegue extrair a quantidade de registros por exemplo só pelo numeral do ID.
Na verdade não, acredito que houve um equívoco da sua parte, olhe o código postado abaixo em outra resposta minha e entenderá. Inclusive dá pra fazer esse filtro de tenant por global scope de forma automática.
A validação do tenant não se dá no middleware e sim no método que está sendo acessado. O middleware só me garante que quem acessa aquela rota está logado.
Quando usuário autenticado acessar o registro de um usuário (exemplo: /usuarios/3), o método recebe essa requisição, e eu valido se o usuário 3 pertence ao mesmo tenant de quem está solicitando as informações. Se sim, continuo com minha regra de negócio. Caso contrário, aborto a requisição e vira um acesso negado.
Sendo assim, não há problemas de segurança. Um usuário do tenant 2 não consegue acessar usuários do tenants 5.
Em relação à quantidade de usuários pelo id, não é uma informação sensível para o meu caso, ainda mais que será retornado uma página de erro por não ser do mesmo tenant que o usuário autenticado. O usuário comum que pode fuçar nem sabe diferenciar se é acesso negado ou página não encontrada.