joins and subqueries are part of SELECT statements, not crud. the purpose of using views is for the SELECT side of the application, not the CRUD side.
In the example above, the select statements were inside stored procedures, and applications were only granted permissions to execute those with appropriate parameters.