Rust also allows writing async code that is agnostic to the async runtime used. Subsuming async under Io doesn't change much imo.