Sub Articulo 100.0
This is almost certainly a bug in LaTeX, due to it not properly handling
a feature of TeX. It may arise in other contexts. I will explain.
The macro
\def\once
{\advance\count0 1 \csname xxx\number\count0 \endcsname \once }
is of course recursive. It creates an infinity of control sequences.
If called outside of a group, \once will cause TeX to bomb, because
TeX runs out of control sequence names.
If called inside a group, \once will cause TeX to bomb, because it runs
out of save space. Try it and see, if you don't believe me!
Why is this? Because \csname ... \endcsname has the side effect of
causing the formed control sequence, if otherwise undefined, to be set
to \relax. This assignment is restored at the end of the group, if
made in a group. (By the way, this is a way of making assignments in
the mouth of TeX. A dirty trick of course.) The save stack is where
such reassignments arestored, so they can be restored. Hence the
bombing.
What does this have to do with the bibliography problem?
Well, LaTeX uses \csname ... \endcsname to form control sequences as
it processes the "aux" file. And so it bombs like the second use of
\once if the bibliography is large enough.
This problem can be solved by confining the side-effect to a group.
For example, it the LaTeX macros had the fragment
\def\buggy#1{\expandafter #1\csname}
\def\doit#1{\buggy\dotheitem xx: #1\endcsname}
\def\dotheitem #1{\gdef #1{\undefinedref #1}}
then we would get the error. But if we replace \buggy by
\def\safety#1{%
\begingroup
\expandafter\endgroup
\expandafter #1\csname
}
then we would not get the error. You see, the restoration occurs within
the tiny little group, inside \safety.
All this, except the application to LaTeX biblographies, is explained in
my article in Baskerville 4(1) 1994), pages 16--17. Baskerville is the
jounral of the UK TeX Users Group.