Type-safety is hard with macros; you can't use a macro as a function pointer, for the obvious reason that it's not a function; such macros would tend to trample all over libc functionality, and glibc is not the only libc; the kernel and userland should arguably be separate.
It wouldn't be too hard to create (generate) a "libwrapsyscall" that just provided syscalls; if this is worth doing, it's worth doing properly.