primeiramente porque um recipiente pode funcionar aplicações múltiplas e você não quer classes de acesso de uma aplicação de uma outra aplicação
Mas há igualmente as classes de uso geral que podem ser compartilhadas que você não quer ter que se desdobrar em cada aplicação