Sua pergunta é bastante interessante, pois gera reflexão fora da caixa mesmo.
O Facade procura abstrair a complexidade de uma estrutura operacional para torná-la ligeiramente prática ao seu usuário final. Ele concretiza a “morfologia” para fins de interação com o mundo externo e obviamente encapsula órgãos de um sistema “fisiologicamente” complexo.
Mesmo se parecendo com um Facade na sua forma “morfologia”, ainda é preciso investigar o projeto do EJB, porque o Facade não pode ser reconhecido somente por fornecer funções simplicadas em forma de API, mas deve-se constatar que as suas funções públicadas fazem apenas a coordenação de outras operações concretas internas de modo a resumí-las/simplificá-las para o usuário final. Exemplo:
Digamos que você tenha um sistema automotivo que possui as partes: motor de arranque, motor a combustão, transmissão e rodas.
Nenhuma destas partes são um Facade porque elas são reais e exercem operações de verdade cada uma delas, são “órgãos”. Mesmo que suas operações públicas estejam desenvolvidas com simplicidade, não são Facade e nem podem ser.
Por outro lado, você não pode vender estas peças em partes para um usuário final usufruir, pois ele não poderia integrar estas partes porque seria muito complexo se locomover apenas com estes sistemas desintergrados.
Para isso, você empacota tudo numa forma chamada carro e então passa a desenvolver funções para o operador leigo utilizar. Logo simplifica ao gerar funções de liga, desliga, acelera, freia e direciona. Um pouco mais além, você simplifica tanto que adiciona até bancos confortáveis, coloca faróis, buzina, retrovisores e volante para uma boa condução. Estas funções genuinamente formam um Facade carro.
Claro, numa análise simples, eu diria sim que o EJB é um Facade. Mas tecnicamente isso não comprova que é um Facade porque dependeria de uma análise do projeto ou conversa com um dos arquitetos do EJB.
wiliamps