Yes, you're right, I can do that, and that's similar to what I have to do on the writer (each member gets its own gzip.Writer, though I plan to keep the writer and reinit the compressor in a later version, but this requires a fork the gzip.Writer as well and this isn't such an issue).
The issue is one of performance, since bgzf is used for genomics work with files on the order of 20-100GB, but query reads returning data that's ca. 200 bytes when performing random access. Remaking a gzip.Reader each seek seems wasteful.
What I have now with my modified gzip.Reader only rquires that the bufio.Reader be remade when a seek is performed (any chance of a (*bufio.Reader).Reset method to zero the buffer to it underlying io.Reader's current position?).
Dan