I thought the idea, at least with UNIX, was to have a relatively small, tight kernel that limited itself to critical functions and that everything else was managed by libraries which could be standardized or optimized for specific platforms.
It seems like more and more code that was in libraries is now in the kernel.