Olha, a idéia de interfaces é justo que elas NÃO mudem 
E como se consegue isso? Fazendo uma análise Orientada a Objetos, ou seja, você precisa “modelar” todos os relacionamentos necessários ao seu sistema e modelar interfaces que supram estes relacionamentos.
Obviamente, não dá pra prever o futuro, mas mesmo assim não há necessidade de se ALTERAR a interface, você pode criar uma nova interface que herde de outra interface, adicionando à esta o novo método.
public interface FuncionarioEspecifico extends Funcionario {}
E assim, as classes podem implementar ambas as interfaces (FuncionarioEspecifico e Funcionario).
Quanto ao “porque não definir diretamente a classe Funcionario”, imagine que você tenha uma interface Funcionario, e uma outra classe que implemente esta interface chamada Vendedor e outra chamada Gerente. Ambos são funcionarios, mas recebem de forma diferente.
public class Vendedor implements Funcionario {}
public class Gerente implements Funcionario {}
Assim, você pode ter código como este:
public void mostraInformacoes(Funcionario f);
Que recebe informações de um objeto do tipo Funcionario. Se você fizesse as classes em separado, sem interface, precisaria de dois métodos:
public void mostraInformacoes(Vendedor v);
public void mostraInformacoes(Gerente g);
Você pode sim ter objetos do tipo Funcionario, mas obviamente, só pode instancia-los a partir de classes que implementem a interface Funcionario:
Funcionario f = new Vendedor();
Funcionario f2 = new Gerente();
Você pode até perguntar, mas eu não poderia utilizar uma classe abstrata para isso? Sim, poderia, mas lembre-se que uma classe pode estender apenas UMA classe… mas pode implementar múltiplas interfaces, obtendo um resultado semelhante ao de herança múltipla, que existe em C++ mas não em Java 
Mais duvidas, continuamos na ativa 
Abraço!