InterBase has a storage manager that's conceptually similar to PostgreSQL's, and implements multi-versioning and row-level granularity for locks.
I don't know if they do "lazy evaluation" of cursors or not, but regardless, as I mentioned above, SQL92-compliant RDBMS implementations must behave as in Daryl's example. The standard leaves no wiggle-room on this one. They easiest way to implement the standard semantics is to just grab the rowset at cursor OPEN time - which is what PG does.