Can anyone think of a reason why all the examples are keywords? I would think if you were trying to cause some trouble, redefining standard functions would cause all kinds of chaos, e.g.
#define memmove memcpy
#define strncmp memcmp
#define rand fork
#define free(x)
#define strerror(n) strerror((n)+1)
#define memset(addr, byte, len) memset(addr, ~(byte), len)