The kernel does not provide "generic" functionality; it provides very specific, often top-notch functionality which you can't easily find elsewhere, at least not as an easy replacement.
Linux has the largest collection of various hardware drivers, and a rather wide community of kernel developers who know how to produce them.
Linux has a number of specialty filesystems, some pretty important for embedded development.
Linux kernel has real-time extensions, which is not entirely a commodity, AFAICT.
Also, stuff like io_uring, BPF VM inside the kernel, namespaces (see "containers"), etc.
No, I don't think you can easily replace Linux kernel with whatever BSD kernel, Darwin, VxWorks, Contiki, FreeRTOS, etc, or, well, Windows. Much of the larger embedded stuff is Linux-specific, and much of big server stuff is either Linux-only or has extensive specific support.