Oi Glaucio, também é uma abordagem funcional.
Eu só te recomendaria em vez de utilizar o then partir para o async await. Além de melhorar a legibilidade do código, auxilia na manutenção caso algo precise ser revisado futuramente.
A ideia do FutureBuilder é avisar à árvore de widgets que elementos serão criados ali, mas, "não agora". Ou seja, quando o flutter começa o processo de renderizar os widgets ainda não teremos os dados que serão exibidos. É aí que nosso amigo FutureBuilder entra para avisar ao flutter que posteriormente mais coisas serão criadas. Da forma como você está fazendo, quando o flutter renderiza os widgetes ele já sabe tudo o que será exibido para criar a tela. O único "perigo" da sua abordagem é de o banco de dados demorar demais para responder. Pode acarretar tela branca ou travamento momentâneo do app. O FutureBuilder garante que o restante da tela que não depende necessáriamente da resposta do BD seja carregado enquanto ele trabalha para trazer os dados.
Um forte abraço e bom estudo!
Espero ter conseguido sanar a sua dúvida!
:)