Olá Ismael!
Dei uma olhada na forma que foi feita na aula e no seu formato.
Primeiro, ambas soluções resolvem o problema, ou seja, neste quesito ambas atendem.
O que diferencia elas então é nas vantagens e desvantagens que cada implementação tem, existem várias formas de você construir uma solução ou resolver um problema, agora qual delas e a mais ideal vai depender de vários fatores como clareza e facilidade de manutenção (para quando outro dev for mexer ou vc mesmo no futuro), flexibilidade para mudanças, reusabilidade dela, eficiência e entre outros. Isso e algo que na nossa área acontece bastante e que com o tempo vc vai ficando cada vez melhor em encontrar entre as várias possibilidades, as melhores para cada projeto e time.
No meu ponto de vista a solução do professor ficou com a lógica mais centralizada e simplificada, o filtrarLivros se vira em fazer todas as coletas e filtros. Ela e mais fácil de compreender ao bater o olho.
Mas a sua solução fez um ótimo trabalho em isolar a funcionalidade de filtrar livros, já que vc colocou um pouco mais de responsabilidade para quem vai chamar o filtrarLivros, que agora deve passar o filtro, e assim vc pode usar ela em qualquer outro local do site. Ela e ótima para se vc precisar fazer mais filtros via outros elementos além dos botoes no site.
Tendo em mente as vantagens de cada implementação, podes se fazer a pergunta: vou precisar fazer mais filtros em outros locais?
Se a resposta for "Sim, vou ter que filtrar em outros locais também" então quebro as responsabilidades e deixo mais modular!
Se a resposta for "Não, vou precisar filtros só nestes .btn mesmo" então posso apenas simplificar a implementação.
Agora respondendo à sua pergunta principal, eu diria que sim, seguindo desta maneira está ok!