Respostas:
Sua função depende dos construtores que você possui em seu projeto (eles podem optar por interpretar o comando limpo da maneira que desejarem) e se a construção automática está ativada. Se a construção automática estiver ativada, chamar clean é equivalente a uma build limpa. Os primeiros artefatos são removidos e, em seguida, uma construção completa é chamada. Se a construção automática estiver desativada, a limpeza removerá os artefatos e parará. Você pode invocar a construção manualmente posteriormente.
Há outro problema em ação aqui. A funcionalidade de limpeza do Eclipse está quebrada. Se você excluir arquivos fora do Eclipse, ele não perceberá que os arquivos estão ausentes e você receberá erros de construção até excluir os arquivos manualmente. Mesmo assim, isso também não funcionará, especialmente se houver muitos arquivos ausentes. Isso acontece com bastante frequência quando faço check-out de um ramo de código que sofreu muitas alterações desde a última vez em que o construí. Nesse caso, o único recurso que encontrei é iniciar um novo espaço de trabalho e recarregar o projeto do zero.