ご検討ありがとうございます.
別の方向性で,乱暴ですが……
すでに保存済みのマクロ(そのときに \obeylines が影響していたかどうかによらず)を list
環境内に貼っていく状況であれば,
(そして,\obeylines
が影響していない状態で定義されたマクロに新しく何かを読み込むようなコードが入っていないという前提で)
\obeylines
を list
環境内におくと,一応解決するように見えます.
※ どうしても \obeylines
を使いたい人だけ,このように回避すれば十分なのかもしれません.
\documentclass{article}
\begin{document}
\def\XA{This is a test text A.
This is a test text.}
\def\XB{This is a test text.\par
This is a test text B.}
\def\XC{This is a test text.
This is a test text C.}
\begingroup
\obeylines%
\gdef\X{This is a test text X.
This is a test text.}%
\endgroup
\begin{enumerate}
\obeylines
\item \XA
\item \XB
\item \XC
\item \X
\item \XA
\item \XB
\item \XC
\item \X
\end{enumerate}
\end{document}