I believe it's safe to write things like:
#define foo(a,b) bar(a,b)
The only thing in the parameter I can think of which could cause a problem
would be an unbracketted comma, and that would be treated as a parameter
separator by the macro expansion.
For most other cases, I agree brackets are likely to be vital to get the
desired behaviour in all cases.
Olly