In this scenario, I'll have to choose which libc I want to run. These won't be portable Linux binaries in the true sense of the word; I'll have to leave Alpine out, and possibly Android, which I don't want.
You don't strictly need to; you can write freestanding C, and use the Linux kernel directly.
You don't strictly need to; you can write freestanding C, and use the Linux kernel directly.