I have previously made my viewpoint known regarding the need for training docs separate from the main docs.
Regarding views: Think single point of maintenance. Here are a few examples:
1: You have a complex query which is run with different restrictions in the WHERE clause. You can set up a view to make maintenance easier, so you avoid duplication of effort.
2: You have an app that expects data to be presented in a different way. You can use a view to do this.
You are right, that a view can do just what a select statement does, but particularly for extremely complex data manipulations, they are very helpful.
Here is another example:
Imagine that I have a complex database where I store historical changes to a hotel and reservations. I can then use a view to look at calculated vacancy rates. Then the vacancy rate view can be manipulated in various ways as if it were a table. Often the simple examples don't show as much as the examples that are much harder to do without a view.
Stored Procs are much the same. The advantages of stored procs are:
1) For repeated queries based on other queries, less network latency buildup.
2) Stored procs can be used from any frontend, so if a function is generally useful you might want to put it there.