Does innodb_data_reads include reads from the buffer pool?
Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests is very small, so the caching for reads is very effective.  The former is actual I/O; the latter includes cached reads.

Innodb_pages_read + Innodb_pages_written may be the number of 16KB blocks read + written.  In looking around on various machines, it seems that either number can be larger.

Indexes are included.  Non-leaf-node pages of BTrees are included.

I don't know what Innodb_data_* are.

Although many operations are "read-modify-write", the "read" is often cached, but the "write" needs to be flushed for persistence and syncing.

Bug #65030: "The Innodb_buffer_pool_pages_flushed status variable was incorrectly set to twice the value it should be. Its value should never exceed the value of Innodb_pages_written." (fixed in 5.5.25)

Do you want to monitor physical reads/writes?  Or logical reads/writes?