Hi,
I've always found it does very much depend upon the type of underlying data source you are acting with.
If the underlying data source is a star schema with no snow flaking then we tend to make the joins in the business layer instead of the db layer. For query predictability the 'as view' concept seems to make more sense. On the other if you are operating against an operational source then perhaps minimised SQL would be of more importance and the joins should be made an the database layer.
Kind Regards
Rob