Seems fixed on master. I don't know when exactly it was fixed, I was running all that time with diff-update-on-the-fly set to nil. But just as I was writing a workaround patch (attached for history purposes, in case it might be useful at some point, but right now it isn't), I tested and it turns out both query-replace-regexp as well as delete- matching-lines result in hunks being updated on the fly. So bug has been fixed, the report can be closed.