The Repository is an API Pattern (i.e. interface pattern), rather than a specific layer.
Anyhow, the best architecture is whatever works best for your situation.
The main criteria to keep in mind for these and many other architectural decisions are future changes. If you anticipate changes (change requests always occur), you want an architecture that is flexible and allow you to implement these effectively and efficiently, without breaking exising code (i.e. tested code).
Hope this helps.
Dan McMillan, May 16, 2011