Allora deployare o no nello stesso ear oppure in moduli separati non crea i problemi da te indicati ovviamente se effettui il primo punto che ti ho segnalato, cioè la corretta configurazione del modulo ejb per consentire la generazione del client, altrimenti come sta succedendo a te (sinceramente io con la configurazione da te postata non riesco neanche a deployare quei progetti....) molto probabilmente ti viene inserito tutto il modulo ejb nei progetti web e come dici tu e come se avessi 3 deploy differenti del modulo ejb.
Per quanto riguarda la mappa statica non è un buon approccio perchè come dici tu ti sei fatto un'idea errata di cosa sia un ejb...
Prima di tutto perchè un ejb a un ciclo di vita cosa succede alla tua mappa statica quando l'ultimo riferimento di un ejb viene passivato.... oppure cosa succede se si vuole deployare il modulo ejb su 2 application server clustered .... se vuoi continuo....
Tieni anche conto della differenza tra un Ejb Stateless e StateFull (questo nel caso pensasi di inserire proprietà all'interno di un ejb..)....
Il concetto che sta alla base di un ejb (cioè per rispondere alla tua domanda a cosa servorno) è che stanno nel mezzo tra lo strato presentation e model cioè seguendo il pattern MVC gli ejb sono i Controller.
Un controller di per se non può contenere dati di scambio fra i vari client ma solo occuparsi di "recuperali" da qualche struttura dati che sia un file o un database poco importa.
Domanda devi per forza divedere i 2 progetti web ?
Perchè potresti tranquillamente usarne uno solo utilizzando eventualmente un security-context per gestire le 2 tipologie di utenti.