A CPU does Scheduling decisions only when it doesn't know which the next process is. If the scheduler decides that process P
which is currently in Ready State should start running on CPU, then why will the CPU further do the Scheduling?
Even more, When an process P
goes from Ready to Running, the CPU now indulges in executing the dispatcher module (A module which is part of OS that gives control of the CPU to the process selected by the processor). The CPU should start context switching since it knows which the next process is. So, it doesn't waste it's time doing CPU Scheduling.
PS: Same is the case with "Waiting to Running".
TLDR: You're asking "Why the CPU is not solving the problem?" when in fact the CPU already has a valid solution (i.e start executing the process decided by the scheduler).