I don’t think anything Mac was ever less than 32-bit, but I presume it was a case of using a 32-bit struct to store two 16-bit values. These were designed for screen coordinates, so that would have been seen as plenty big enough.
Many values were indeed stored in (often signed) 16 bit types, like this Point type for screen coordinates. This comes from the pre-OSX times, when memory was still precious and saving a few bytes made a difference. Applescript still uses those old types in many places for standard types like this Point type, it seems.
The modern NSRect and NSPoint types from OSX (Cocoa) use floating point types (using 4 bytes in 32 bit apps and 8 bytes in 64 bit apps). Maybe you could change your script to using NSPoint types, though that would only work if the scripted app also uses those types internally and is prepared to accept them. Probably not.
That’s not necessary here: my confusion was that as point was not returning the same result as usual.
Shane leads me to the problem: when puting the document in a variable, as point is no more the command from SD but the one from AS.
But we are lucky, SD has a second method to retrieve the selection!
When working on strings outside of applications that are able to manage large texts, I’m always using asoc.
And if I remember well, there was a time where compiled scripts were limited in size (e.g. System 7).