Even though there is no pointer arithmetic, and therefore no chance of misunderstanding what `p + 2` means, it looks like you still need to say `*p + 2`, i.e. no implicit dereferencing of pointers to act on the pointee.
Again, no implicit dereferencing. It looks like you need to use `(*p).i` rather than just `p.i` to access a member through a pointer.
So while it's true that they don't have -> for dereferencing pointers, they are not arguments in favour of using . to dereference pointers. You could use them as arguments for getting rid of -> because we can just do `(*p).i` instead, but I don't think anybody wants that!