Maybe Rust needs another type of reference that's exclusive write only?
Right now there's RO (&T) and exclusive RW (&mut T) but WO is missing.
Having a WO reference would allow these read_buf APIs to express they only write and never read so the uninitialized memory is safe to pass directly.