Jeg går udfra du med BLL og DAL mener opdelte assemblies og altså ikke blot en arkitektur?
Jeg mener ikke der er nogle grunde til at bruge lagdelte applikationer medmindre vi snakker store systemer. Ofte kan det komplicere langt mere end det gavner, jeg har mange gange set systemer starte op med både den ene og anden "hvis... hvis.... hvis...." for til sidst at ende med noget langt mere simpelt.
Der findes også mange kritikere til netop den traditionelle n-layer,
http://jeffreypalermo.com/blog/the-onion-architecture-part-3/2AA nu siger du sidens code behind, du skal huske at overholde retningslinjer for klasser og unit of work mv. altså god skik for hvordan en applikation opbygges.
Hvis du eks.vis udvikler i .NET så er det nye DAL jo blevet til en datamodel, den kan bruges direkte i eks.vis en serviceklasse som din asp.cs kan anvende :)
Jeg tror også den traditionelle 3-lags model ofte implementeres "fordi det plejer vi", men om det er smart - tjaa... det kan hurtigt blive en lang diskussion som allerede findes i 1000 versioner på nettet :)