I think I'm beginning to get the idea. Is the following plausible? At the bottom of the stack, there's an actual source of data -- like a tokenizer. For one of those, reset() is a bit silly, and something like setReader is the brains of the operation.
Some number of other components may be stacked up on top of the source of data, and these may have local state. Calling #reset prepared them for new data to emerge from the actual source of data.