Kevin, a princípio também não vejo necessidade. Como bem você disse, como a tabela livro contém a chave da editora, através do relacionamento das tabelas ESTOQUE e LIVRO, podemos ter acesso as informações da editora. No entanto, no meu caso, sempre gosto de olhar o contexto dos relacionamentos entre as tabelas em relação a performance do sistema. Em determinadas situação acho interessante desnormalizar o modelo em prol do desempenho de consultas no banco.
Não conheço as regras de negócio do sistema que você está modelando, mas vamos supor que tenha uma consulta, muito utilizada, que faça o levantamento do estoque de livros, independente do título, de uma editora ou de todas as editoras.
cenário 1. Sem a chave "cod_editora" na tabela estoque. Nesse caso para levantar essa informação seria necessário realizar um JOIN entre as tabelas ESTOQUE e LIVRO para colher informações que estão na tabela ESTOQUE.
cenário 2. Com a chave "cod_editora" na tabela estoque. Bastaria ler a tabela ESTOQUE para ter acesso as informações necessárias.
Isso é apenas um exemplo. Então como dica, quando estiver modelando um sistema tenha em mente como será o acesso às informações. Algumas regras de normalização foram criadas em função da limitação de armazenamento das informações, hoje nossa maior preocupação deve ser o desempenho do sistema, principalmente em função das grandes quantidades de dados.