Because of the under the hood buffering strategy of BinaryReader, it is unclear to me whether is it ok or not to read an offset stored in a stream, then reposition the strea
In my experience so long as you are using them both synchronously and no other thread is doing anything with the stream then it works perfectly fine.
I do that extensively in applications I have written to work with binary file formats and have never encountered an issue.