Changing the page directory implies performing a full TLB flush, which takes a lot of cycles. Since kernel pages are shared between all threads in the system, it is not required to update the page directory address when switching for a thread that was running in kernel mode before being preempted.
This change would require us to be sure that a thread cannot change ring level before the next scheduler tick.