Когда Вы пишете макрос в виде функции, он должен позволять использовать его как функцию без ограничений.
Если написать так, как Вы предлагаете, его нельзя будет использовать, например так:
if (a > 1) printVar(kaka);
И, кстати, обратите внимание, что у меня в конце нет точки запятой. Если её туда добавить, то нельзя будет использовать вот так:
if (a > 1) printVar(kaka); else printVar(mumu);
А так, как у меня написано, можно использовать везде, как вызов функции и не париться.
P.S.
Кстати, чуть не забыл. Второй из приведённых примеров не сработает и при таком определении макроса:
#define printVar(x) { Serial.print(#x);Serial.print('=');Serial.println(x); }