It is not necessary to open a transaction in order to read serial elements. In fact multiple threads can concurrently read serial elements. This corresponds to the shared read access mode often provided by high performance database systems. Furthermore, multiple threads can be reading serial elements concurrently with a running transaction! In other words, the LSS provides no mutex between the thread writing new data to the store, and the threads that are reading existing serial elements.
It is therefore up to the layers above the LSS to make sure concurrent reading and writing is a valid thing to do. For example if there is some sense in which the database is logically partitioned into "separate worlds" then concurrent reading and writing can made sense in certain cases. For example, while one "world" provides exclusive write access, another "world" can support shared read access.
Reading a serial element may block on I/O as the LSS loads a segment from disk. A very large serial element may take up many segments. These are loaded on demand as the serial element is read as a byte stream.
The serial element is read as a non-seekable byte stream. I.e. the entire serial element must be read from start to finish. It provides a reliable "End of stream" indicator.