Oi Douglas,
Sim, o que a pessoa explica no post faz sentido. Só é uma má abordagem se você não souber o que está acontecendo. Quando você junta o where com fetch, você realmente está restringindo a coleção que vai ser carregada e associada com seu objeto, à apenas os objetos que atendem o critério da seleção.
Uma situação: vamos supor que você quer recuperar todos os alunos que fizeram cursos de java. Caso você faça um fetch join e aplique a restrição ao nome do curso, você vai recuperar todos os alunos, mas quando for olhar a coleção de cursos de cada um dos alunos ela só vai ter os cursos que tem java no nome. É isso que você queria? O que ele explica no post é que você quer recuperar tudo sobre os alunos que fizeram os cursos de java, e nesse caso a coleção deveria ter os cursos de java e os outros que cada um tenha feito.
Esse é o problema do where com fetch join. Tanto que isso nem é previsto na especificação, é uma feature das implementações que oferecem, mas como você pôde ver, deve ser usada com cuidado.
Agora, se para você, recuperar a coleção em um estado inválido não tiver problema, manda bala e usa. Saber o que está acontecendo faz toda diferença. Ótima pergunta! Um outro link interessante que você pode olhar é esse aqui => http://dextra.com.br/cuidado-ao-realizar-consultas-com-join-fetch-e-where-no-hibernate/