Thanks @Tom. I think that what I didn't make clear is that I want to run a series of separate simulations (with different parameters) without reinitializing the PRNG. (Not reinitializing it is a good way to allow the PRNG to make sure that the new numbers are independent of preceding numbers. i.e. to the extent that any PRNG can be trusted to do that--which is a different topic.)
Suppose I initialize a PRNG with a seed. Then I do a simulation run that generates a lazy sequence steps1. I do something equivalent to 'take 10000', let's say. There is one PRNG call per step, so I've now advanced the PRNG through 10000+k states, where k is extra processing due to chunking. Then, using the same PRNG but not reseeding it, starting from that point I do a different simulation run that creates a lazy sequence steps2, and run 'take 10000' on it. I then throw away steps2, but later I want to examine it more closely, so I rerun the first simulation (or maybe just step the PRNG 10000+k times, if I knew what k was), and then run the second simulation again to recreate steps2.
But according to @alexmiller, I should not assume that k will always be the same. If k could be different, then even running the first simulation before the second would not guarantee that I was actually be recreating steps2 as it was before.
If I don't use laziness, then I would know exactly how many times the PRNG was called to create steps1--10000 in this example--so to recreate steps2, I only need to give the PRNG the known seed and then throw away the first 10000 numbers, which doesn't take much time. Then I can perform the second simulation to create steps2. (That was probably more detail than needed.)
An alternative would be to read out the state of the PRNG and store it, and then use that to initialize it if I need to recreate a run. I'm using a PRNG (Well19937c) that has a larger internal state than the long seeds I use to initialize it.
(I took out the laziness last night. I think I might be seeing a small performance benefit as a result, but most of the processing time is in routines that run on each step regardless, so the difference is small.)