Minhas preferências (e a ordem que eu as escrevo):

/entities: entidades e regras de negócio do domínio - core da aplicação /use-cases: os casos de uso em si, onde há interação entre as entidades do domínio /repositories: persistência de dados (daí posso usar combinado com um ORM, ou não) /controllers: rotas da aplicação (antigamente eu usava um /routes também, mas passei a simplificar e usar somente o /controllers)

De fato o express permite essa liberdade pois ele não é um framework opinado, como por exemplo é o Spring Boot para o Java, ou até mesmo o NestJs para Javascript/Typescript. Mas eu prefiro o express ou fastify justamente por essa liberdade.

Se a codebase estiver bem documentada, você consegue separar a liberdade de libertinagem e evitar que sua aplicação vire uma "maçaroca".