Opa, Cauã!
A melhor maneira, pensando em segurança, sim, é a utilização de token de acesso com o refresh em Http Only. E sim, nesse caso não haveria necessidade de usar o Bearer token sendo passado no header, pois durante a autenticação do usuário você criaria um token que será chamado toda vez que ser necessária a autenticação.
Agora sobre os programadores usarem tudo Http Only, não. Normalmente não é por norma utilizar apenas o Http Only ou a autenticação com o Bearer Token, depende muito do que será feito, como será feito e com quais tecnologias serão feitas.
Pegando como exemplo, se tivermos fazendo um projeto FullStack em Django, onde todo acesso ao banco e autenticação acontece no mesmo ambiente onde estabelece uma página Web, o melhor seria criar um Token de acesso tendo o Http Only, pois, diminuiria o retrabalho que seria receber o Bearer Token do mesmo serviço para autenticar a página ser acessada ou recurso.
Outro exemplo, onde eu faço um projeto Backend em Spring Boot/Java e Frontend em Angular, o recomendado, geralmente, é utilizar o Bearer Token. Pois, quando a rota do Backend for consumida pelo Frontend ele poderá trabalhar com mais liberdade dessa forma, podendo estabelecer a segurança personalizada.
Resumindo, cada caso é um caso, não existe uma lei geral para todas as coisas na programação, entenda o que o projeto seu pede e tente ajustar as formas de segurança e autenticação para esse caso.
Espero ter ajudado e fico a disposição!