Porque fazer essa diferenciação se o button pode fazer perfeitamente o trabalho do <a? um só já vem estilizado e o outro não, até onde eu usei, usar o button não causa bugs, o <a eu uso apenas quando quero adicionar um texto clicável, por exemplo, no meu projeto agora utilizo o button para redirecionar ao um link de conversa no Whats auto completado com o número no banco de dados específico. Na pratica o button faz o mesmo que o <a se quiser, só tem a aparencia pronta de botão, o <a que não deve conseguir fazer o mesmo que o button acredito eu.