Sure they are, you just slap a where statement on your query when you query a view. Or am I missing something?
Sure, that's sufficient most of the time. However, there times when your view might span multiple tables and you want to ensure that full table scans aren't triggered before your view predicate is acted upon.
This may also come down to how sophisticated your DBs sql optimizer is.
Agreed, but... the problem with views are they aren't parameterizable. In effect they are static templates. Fortunately, modern data warehouses often provide user defined table functions that accomplish pretty much the same thing, but allow you to "create input parameters to your view".
Dataform looks interesting (how have I not heard of this before) but I wonder if they support UDTFs?