I read until the "FFI" section
Yes, you must use "C" if you use the libc (seems obvious)
However, you can issue your syscalls directly. Of course, to do that, you will have to rewrite your own libc .. nothing is free.
It shall be noted, however, that this is not possible in every environments: I believe that openbsd's code must use the system libc. At the same time, on windows, you must use the provided library. This does not mean the OS library is always C (but this means your new language must do FFI with whatever language is used by the system).
Maybe only Linux allows anybody to issue syscalls directly ?