Well, I would say
yes, because I think that all data access should happen inside transactions, but I know of other people who disagree with this and believe it is OK to do read-only data access outside of a transaction.
There is no 'outside of a transaction'. What Gavin means is that sometimes it is OK to read data with auto-committed transactions, but if you want to keep your web-application maintainable, you better not do it. The story is different for two-tier clients that access a database server without middle tier: http://www.hibernate.org/Documentation/NonTransactionalDataAccessAndTheAutoCommitMode
That's right, there is no write expected, but, isolation could be an important issue.