Another thing is that COBOL records commonly have complicated unions (to save space) where a separate code affects how you interpret the fields. You need to understand all the business logic to make sure you are reading the data correctly.
> Huh? How do you think `const char s = "Hello"; const char t = &s[1];` works?
I think you and the parent are using different definitions of granularity. The parent meant that sizeof(t) could be 32 or 64 bits. I think you just meant that the smallest thing the pointer references is the address of a single byte.
Rust already has fat pointers though. A reference to a smaller byte value could be a pointer plus a bit-mask.