It's just to protect ALL the arguments using brackets but the important part is
the pointers.
The macros contain
(char *)to, (char *)from
and the IPC message code in msgutil.c calls
copy_from_user(msg + 1, src, alen)
copy_to_user(dest, msg + 1, alen)
with msg being a pointer to a structure bigger than a char.