I'm not sure how optimistic locking could ever prevent dirty-reads for READ_UNCOMMITTED (regardless of when you actually lock()). Then again, maybe others know. James Sutherland from EclipseLink should know for sure.
[Message sent by forum member 'cowwoc' (cowwoc)]
http://forums.java.net/jive/thread.jspa?messageID=315883