Yes, pointers aren't guaranteed to have the same size, although on most modern architectures they are, in practice.
One point where this can be useful is when one concerns data vs. function pointers. Historically, function pointers (that are used to essentially jump to certain parts in the executable code) needed so-called "far pointers" which are wider than data pointers.