Earlier quoted context omitted.
>I guess this is not the most up-to-date document? it's also not correct. It doesn't have all 4GB "all to itself", because a portion of that (usually 1 or 2 GB) is mapped to the kernel.
"each process has 4 gigabytes of virtual address space all to itself" A process does indeed have all 4GB of VIRTUAL adress space to itself. unless I'm misunderstanding you.
That way userspace-to-kernel switch does not require changing active page table (and also avoids switcharoo each time kernel needs to access userspace memory).