Moc nechápu, proč se v ukázce maker TeX(u) vyhýbáte použití parametrů a místo toho používáte nehorázný trik s \aftergroup, \let s pro přezávorkování do nového bloku. Psal bych to jednoduše takto:
\def\itemnum{\advance\licount by1 \llap{\the\licount.\enspace}}
\def\listend{\smallskip\noindent\ignorespaces}
\def\li#1{\noindent\itemnum#1\par}
\def\nlist#1{{\licount=0 \par\nobreak \advance\leftskip\parindent #1\listend}}
Možná ale vámi uvedený způsob nějaké přednosti má, jen přesně netuším jaké?