Who wants a kernel? Distribute a bootable unikernel image that can be talked to via gRPC or something.
Obviously there are plenty of things you can't build that way (e.g. drivers), but for a server application that's intended to be accessed over the network anyway, like Clickhouse, I'm increasingly thinking that's the way to go.
Not really - Linux syscalls are stable, so you are free to run your binary with a statically compiled libc and never touch the installed one. You can also handcraft your syscalls in assembly.
This will not work on Windows, where the kernel API is a DLL and syscall numbes are routinely changed.