See http://lists.samba.org/archive/rsync/2009-September/023892.html . IIUC, the feature that disables deletion upon an I/O error is mostly non-functional with protocol 30, incremental recursion, and --delete-during. That could lead to a catastrophic loss of destination files, which the feature was intended to prevent.
One safe behavior for a sender that gets an I/O error and is unable to report it reliably to the receiving side would be to exit immediately with a message explaining the issue. That way, users with rsync 3.0.* (the current stable branch) can still use incremental recursion safely and then switch to a different approach if they frequently get I/O errors.
3.0.7 has this fixed (and in a way that is compatible with 3.1.0). If the sender has enough information to know that it should die when an I/O happens (for an older receiver that is doing a delete-during pass), it will do that too.