POSIX has just fucked this up.
I mean, consider the simpler goal: deprecating select(). select() is completely unusable in nontrivial applications, or in any library that might simply be in a process space that might have more than FD_SETSIZE file descriptors -- with the failure mode being memory corruption in practice, because who bothers checking FD_SETSIZE?
The problem? POSIX hasn't even managed to incorporate ppoll()! So, if you're wanting to portably combine signal handling and FD monitoring, you're forced to use pselect(), and so we can't simply say that nobody should ever use select().
And there really is no longer an argument for it anymore. There used to be a performance argument, but it's gone now: at FD_SETSIZE's usual value of 1024, a poll() of size 1024 in linux uses only 64KB. A copy of 64KB on modern computers is going to be dwarfed by the overhead of doing a syscall.