Are char*, int*, long* or even long long* of same size (on a given platform)?
On 16-bit embedded processors which have banked (paged) RAM and/or flash, the use of pages may lead to pointers being different sizes - though this is independent of the size of the data they point to.
For example, on Freescale's HCS12 processor which has banked flash, data pointers are all 16 bits.
However, function pointers are 16 bits for near pointers (for code in the same page as the calling function, or in unbanked flash), or 24 bits for far pointers (for code in a different page), incorporating the page number in the address.
Things are complicated if you want to store constant data in paged flash, as due to the limitation on data pointer size, the function using the data has to be in the same page as the data being accessed.
It is conceivable that a 16-bit processor with banked RAM would likewise have different sizes for near and far data pointers.