isn't int(0..4294967295) good enough for that?
That is a compiletime type, not a core runtime type. The runtime values are stored as one of the core runtime types T_INT or T_OBJECT, depending on if it fits in an INT_TYPE or not. What you suggest would require a new core runtime type T_UINT, and support for it in basically all C code which supports T_INT.