Oi Felipe, tudo bom?
Acessar a base de dados diretamente é bem perigoso na verdade. Principalmente se alguma das suas aplicações utilizam um ORM.
O ideal é passar as informações pelo serviço de persistência (API), garantindo a consistência dos dados sempre.
Quanto a implementação do android app, existem diversas abordagens mesmo. Você pode fazer uma requisição só no login do usuario e guardar todos os dados de uma vez na memoria do celular e toda vez que ele fizer login você atualiza esses dados. Ou fazer as requisições como você comentou. A vantagem de fazer uma requisição só no começo da aplicação é que você evita super popular o servidor de requisições. A desvantagem é que dependendo do tamanho do seu app essa requisição pode ser um pouco pesada e afetar a experiencia do login do seu usuario. A vantagem de fazer as requisições é a sensação de resposta rápida (se implementado um loading nas transições a aceitação dos usuarios é tranquila), a desvantagem é a quantidade de requisições. Acho que aqui cabe muito uma decisão mais crítica em relação ao publico do seu software. Se você tiver muitos acessos, talvez fazer uma requisição só trabalhando bem o cache seja a melhor abordagem. Se você tem poucos acessos, as requisições não vão ser um problema.
Enfim, o cenário ideal varia com os usuarios e cenário do proprio software. Mas, espero ter ajudado haha
Abraço