When creating views, why do users need direct object permissions if they already have the same permissions via a role?
From the manual:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_8004.htm#i2065510


  The owner of the schema containing the view must have the privileges necessary to either select, insert, update, or delete rows from all the tables or views on which the view is based. The owner must be granted these privileges directly, rather than through a role.


(Emphasis by me)

So I guess there is no way around this problem.