Olá Flávio! Utilizar a fonte com total transparência ou colocar visibility: hidden não é recomendado pois é necessário tomar muito mais cuidado com o layout, pois o elemento continua lá, apenas não está mais visível.
Outra alternativa também é font-size: 0. Mas também não é recomendado pois muitos browsers não suportam essa prática, tem que ter um font-size mínimo, especialmente no mobile e o usuário também pode mudar o font-size do browser.
Outra opção seria utilizar o display: none , mas também não é recomendado porque é ruim para SEO e para acessibilidade, justamente os dois pontos para os quais a gente gostaria de ter o texto alternativo.
Hoje a melhor prática mesmo é o text-indent. Quando aprendi essa técnica fiquei com a sensação de estar fazendo uma "gambiarra", mas não é. Gambiarra é quando existe o jeito certo de fazer e você faz de outro jeito porque é mais cômodo. Como o melhor jeito de fazer o image-replacement é mesmo através do text-indent, isso não é visto como "gambiarra" e sim como técnica!
Abraços e sucesso nos estudos!