「論理行で一行に書かなければならない」ものを、
「物理行で複数に書く」際には必要です。
C/C++で「論理行で一行に書かなければならない」ものは、
プリプロセッサ命令(マクロ定義も含むがそれだけではない)ですから、
これらを複数行に渡って書くには必要です。
というわけで、マクロ定義でも「必ず必要」なわけではありませんし、
「マクロ定義だけ」に必要というわけでもありません。
# 現実には、大半がマクロ定義で使われるのですが。
またこれは、あくまで「必要」ということであって、
その他ほぼ全ての場所で改行をエスケープすることは「可能」です。