A benchmark is a single program, so it can be assumed that the test has several random memory accesses. Also, “sequential user process” does not imply “sequential memory access” – a process can make random requests. Considering an equal number of CPU bound and IO bound processes in the real world by the user, it can be said that IO bound processes make several random reads, similar to the benchmark, and therefore see a 50% improvement, while CPU bound processes don’t see any improvement. So wouldn’t the overall improvement in IO be the average, i.e., 25%.