Wieso sollte Int64 ein Problem sein?
In deinem Generic machst du doch genau das Selbe, nur halt etwas umständlicher weggekapselt.
Du castest ja nicht den "Inhalt" des Pointers, welcher in
Win32 zufällig 4 Byte ist,
sondern das, worauf der Pointer zeigt und da ist die Größe egal.
Ein untypisierter Pointer hat quasi eine Größe von 0 Byte und beim Cast auf andere Typen wird dort keine Größenprüfung vom Compier vorgenommen.