Linus Torvalds writes: (Summary) Because, unless I remember wrong, a 32-bit user program on a 64-bit kernel will actually work at least most of the time even if high bits are set. you will have access
to the 0xc0000000 - 0xffffffff area that you wouldn't have had access to if it ran on a 32-bit kernel. They can't happen on a native 32-bit kerne, but a 32-bit program doesn't even care. After all, depending on configuration, a native 32-bit kernel might limit user space even more (ie some vendors had a 2G:2G split instead of the traditional 3G:1G split.