Vejo apenas benefícios para a arquitetura de cebola sobre a arquitetura de três camadas, onde o BL tinha a responsabilidade de chamar métodos no DAL (ou uma interface do DAL) para fazer CRUD. A cebola tem uma melhor separação de preocupações, capacidade de teste, manutenção e é mais limpa.
Então a arquitetura de cebola é realmente melhor em todos os aspectos e a arquitetura em três camadas é apenas uma maneira antiga de fazer as coisas, ou há alguns cenários em que eu preferiria usar a arquitetura em três camadas, se sim - qual?
fonte