I’m listening to the Hanselminutes Podcast; \"StackOverflow uses ASP.NET MVC - Jeff Atwood and his technical team\". During the course of the Podcast they are speaking about SQL
Stored Procedures / Views / Functions are still a good "Interface" to the database if you are running multiple enterprise applications sharing the same database.
App#1 - You need to add a new relationship/field, or change a nullable column to non null.
App#2-10 - May or may not use this database object
The first thing I want to do is check my database object dependencies to determine how its used and if I'll break anything. Well, guess what, if you have a bunch of external queries VIA ORM / SQL you would have no idea of the dependencies.
This is the only drawback I found having direct access to tables.
For a single application using single database, this really isnt an issue. Although you still have to look at the application code for dependencies in addition to the database.