Hi James,
O2 always dereferences to the base type. So, an int will always have a sizeof 4 regardless of its pointyness.
Note that the string type is inherently a pointer, and therefore has a sizeof 8 on a 64bit system.
These rules aid consistent striding when iterating over arrays of variables.
Example of striding:
def stride @%1 += sizeof %1
dim double d[100]
double pd at @d
'
for i=1 to 100
pd+=4
stride pd
next
'results in d[] 4,8,12,16 ...