My opinion on having ALL queries executed via stored procedures
Point 1:
It was REALLY useful in the days when having a DAL layer was not very common because doing it via SP's provided the same confidence that your DB changes would never impact any over lying layers other than 1.
Nowadays, with DAL layers being the norm, you get the same separation using a DAL and i do not really see too much additional value to having SP's in this regard. (Having a DAL layer assumes that your SQL queries are only in your DAL and nowhere else)
Point 2 :
Also, in older databases (atleast SQL Server 7 and maybe even 2000), there was a performance benefit due to caching of SP execution plans where as executing direct SQL would be slower due to this.
Nowdays, most databases cache ad-hoc queries also and this benefit too is no longer a criteria.
Point 3 :
Also, in older systems, a lot of business logic used to be embedded in the database.
Having business logic embedded in the database meant writing LONG and complicated procedures. So, since procedures were anyways present, it became useful to make it consistent by saying "lets make everything a procedure"
Nowdays, most applications refrain from putting business logic anywhere in the database.
So it is very likely that other than SELECTS, the CRUD statements will usually be very simple and straightforward in most object oriented systems.
Summary : I personally think that forcing a SP for every query is old fashioned. There is no harm to doing it. But i am really hard pressed to think of any real benefit to doing it provided you have a DAL / Business layer and a DB engine good enough to cache your query plans for your queries