IIRC, the reason that the >4G raises an overflow error is because the _statxFile is an internal function that has full visibility but the public interface which uses it returns a 32-bit value. As a result, we would silently truncate the value. If the interface has since changed and now returns a 64-bit value, we should be able to re-constitute the 64-bit value and return that as we would have the full range available.
It ultimately uses the Win32 _stat type, which uses 32-bit integers as you say. There's an alternative _wstat64 structure and corresponding function we could migrate to that would use 64-bit integers as well as WCHAR strings (if we need them.) Shouldn't be too much work, mostly rote translation.
Hmm, I do remember looking at the 8 different stat variants. I know that they have the 64-bit variants, but ISTR that I hadn't used that because the truncation was happening at the Foundation/CoreFoundation layer, not the Win32. Note that I was explicitly checking the high bits on the existing stat and rather than re-composing the value, raising an error.