I don't think so. See https://learn.microsoft.com/en-us/windows/win32/directshow/supporting-seekin....
Okay, I'm surprised it recommends actually calling Stop() [though note that you also have to put it back in paused state afterward, which this patch is missing]. Stop() is a bit of a heavy hammer, though, and I don't think we need it here.
The document talks about seeking on condition of streaming thread running, so I don't think we should only send flush command downstream in stop state. If not in stop state, we drop the pending buffers by flushing, downstream filters chould handle this.
Stopping the filter is necessary, it finally calls asf_reader_cleanup_stream() to decommit the allocator to prevent futher buffer allocating. Buffer allocating failure makes upstream filters unable to send more buffers downstream, which is what we expected when we are seeking. If we don't, there may be race conditions, although I can not precisely says what condition it is.
You don't need to stop the filter to prevent that. In fact, that's exactly what flushing is for.