Unless you actually want to do something other than dereference the pointer. The pointer is a complete object in its own right, and sometimes there are needs to do something for which you need a copy of the pointer to the object, not a reference to the object.
So the syntax f( myStruct* const arg ) never needs to be used because it's the same as f( myStruct& arg )?
It's not exactly the same. When passing a reference, you are forced to pass a valid object. Passing a pointer allows you to pass a null pointer, which is useful in some situations