Incorrect. The 64 bit machine theoretically supports 2 ^ 64 bytes virtual memory space but on x86 only 48 out of 64 address buses are used. So we cannot assume the upper limit of physical space.on different platforms.
And Nick you're confusing with the physical and virtual memory. The usage of memory for kernel space is not determined by the ratio. It's defined by mapping strategy. You first need to know why this 3 to 1 was used. It's because we cannot map all the physical pages onto the corresponding virtual address since we need to spare some linear space for user program. But on 64 bits platform we have plenty virtual address for the programmer as the physical memory is much much smaller than it. On x86_64 we divide kernel/user space by setting all the first 16 bits with 0 or 1 as the user or kernel space respectfully. So how large would the kernel space be if we could use 48-bit linear space?