Further testing implicates either xsltproc or the stylesheets.
I use xsltproc to get from DBX to FO, and then FOP to get from FO to
PDF, because I use XIncludes in this document. If I make FOP do all
the work, the page title are formatted correctly, although of course the
XIncludes break.
I initially thought this meant for sure that xsltproc was creating a bad
FO file, but when I made FOP do all the work, it took many times longer.
If it was just 2x or so longer, I could believe the speed difference
was a C++ vs. Java thing, but it seems more likely that the delay is
because FOP ignored the local XML catalog, and fetched fresh stylesheets
from the Net.
This is an up-to-date CentOS 5 system, so xsltproc is from libxslt
1.1.17, and the stylesheet RPM version is 1.69.1-2. That "-2" means
it's been patched at least once, so it's certain there's a difference
between this an the official 1.69.1 version.
Is there a way to make xsltproc ignore the catalog? If so, then I could
rule out either the stylesheets or xsltproc.