I would consider making views for all selects a bit of an overkill. There are good reasons to make views for some tables, but trying to do every select that way isn't worth the effort.
Updates and inserts are a different story. Doing all updates and inserts through stored procedures can make sense if you have strong security requirements.
Of course it also depends on what the system is for. If your building an public web application then overkill is called for. If it is an internal application then you may not need to go the overkill route on stopping intentional hacking. And if your working on an application where the users are not required to change their passwords from the default 'password' then you might as well screw the security.
Jay