That makes sense - especially for formats like qcow and snapshots, the
guest has very little knowledge of access timings.
It's a bit like a database accessing a large file: the database tries
to schedule and merge I/O requests internally before sending them to
the kernel. It doesn't know anything about the layout of disk blocks
in the file, but it can guess that nearby accesses are more likely to
involve lower seek times than far apart accesses.
There is still one reason for guests to do a little I/O scheduling,
and that's to merge adjacent requests into fewer ops passing through
the guest/host interface.