general comment:
since the size of a pointer changes with the bitness, a pointer should _never_ be typecasted to a fixed size type since that will not be correct in more than one bitness.
a pointer should be typecast to one of the types whose size are bitness dependent (just like pointers), the most common ones are ptrint and ptruint.
using "absolute" isn't safer than directly typecasting, it just stops the compiler from emitting warnings.
Personally, I much prefer using "absolute" to overlay a variable of type ptruint on a pointer than typecasting the pointer. This because, it can prevent the compiler from emitting a lot of warnings that basically end up being "noise" that get in the way of noticing other important warnings.
HTH.