Here's a fun use case that we ought to support. When solving time-periodic flow problems using Newton-Krylov methods, application of the operator can involve thousands of time steps. The data sizes aren't huge, but at the strong scaling limit such that time integration can still take several hours, meaning that the Krylov method cannot be run to convergence within the wall-clock limits of the queue.
Most of our time integrators are currently written using TSStep so that we can give the user control after each step. Doing this transformation for all KSP implementations would be sort of a headache, but it should be possible for one or two methods (GMRES is likely most useful). (This is one time we wish we used a programming language that could return and serialize continuations...) Anyway, if we had an interface like KSPStep() or KSPIterateOnce(), then we would add KSPView() to a suitable file format (needs to store Hessenberg state and Krylov basis; doesn't _need_ to be architecture-independent in my opinion).
