Firstly, if your macro does not typecheck, it means that executing it might result in a segfault or something similar, since macros are regular OCaml functions.
Secondly, if macro typechecks, then it is guaranteed to expand without errors, and I think that's a nice guarantee to have.