1. Generally, we accept all-zeroes page checksums because of this code: https://github.com/MariaDB/server/blob/b30446c85dbf0fd402a7833e1042bc13be7fece2/storage/innobase/page/page0zip.cc#L4877 So, lets state it in the code
2. All-zeroes pages are correct for page_zip_verify_checksum()
3. reinterpret_cast<uint64_t*> from char* is incorrect (UB). It needs to be fixed.
Note that since 10.4.3 https://jira.mariadb.org/browse/MDEV-12026 InnoDB can compute CRC32 checksum without bitwise XOR. And such checksum can be 0 only when all input is zeroes.