Através dos exemplos dos usuários aqui, o uso parece eficiente quando não sabemos quantas vezes queremos rodar aquele trecho de código.
Implementando lógica de frontend e backend, o esperado é que nós saibamos o que esperamos naquele trecho de código, inclusive para testar.
Acredito que isso explica o desuso do while.