To be more precise, I DO think four verbs are enough. By taking a CRUD/persistence mindset (persisting carts, each step in multi-wizard forms, treating workflow tasks as objects with their own CRUD, etc.), I have always been able to map the primary intent of every page request to one of the four verbs – Create, Read, Update and Delete. But more verbs make for a more powerful, intuitive interface . . .
When I’m developing domain specific languages (DSL’s) I’m usually looking to create more languages with less expressiveness in each. In the extreme, I already have a pair of languages (ColdFusion and SQL) which will allow me to build almost any web application. However, they are so flexible, they are not easy to learn and the signal to noise ratio (minimum theoretical characters required to describe intent vs. characters required by the language constructs and compiler/interpreter to implement that intent) for ColdFusion (and most other scripting languages) is horrible. My goal is to refine a bunch of much simpler DSL’s for describing everything from lists to validations.
Because of this, I’d much rather add new verbs like "approve". Sure, we all know that an approval is just a type of update, but by breaking it out, I can create a separate, simpler, richer DSL for "approves".
To take an even more obvious example, to describe a view (a read operation), the main criteria are the object to view, the instance and/or version to view (usually based on a value of a unique attribute – ID, email, product SKU, etc.) and the attribute list to return. With a named list (which is also a read), you need the object and a comma delimited list of unique attribute values in the order you want them returned. With a filter list you might need the object, the filter, the order, the first record number, the number of records and the attribute list. In practice it is much easier to specify an application by selecting from a wider range of verbs (so read might be replaced by view, named list, filter list and report) – each with simpler parameters for specifying 99% of functionality required.