Thanks, Robert, that helps a lot. Using ASDF:SYSTEM-RELATIVE-PATHNAME is a big step forward.
A follow-up question: Is there a way to know, within a file which is being loaded, whether or not it's being loaded via ASDF? The index file might be loaded via CL:LOAD also.
Just to clarify the situation a little, the .info is created from .texi by makeinfo, and then it's parsed (by a Perl script -- OH MY WHAT HAVE I DONE?? Ha ha, only serious) to get the offset and length of each documentation item, which is stored in the index, which is implemented as a Lisp program that reads the .info and builds suitable hash tables, to be used by Maxima's documentation system at run time. All that with makeinfo and the info parser happens long before ASDF comes into the picture. The .info and index.lisp are packaged with the rest of the code, and that's the package that ASDF sees.
I don't doubt that this systems has flaws, but at this point I am taking it as a given; I'm trying to make progress on a lot of fronts, and cleaning up this monstrosity is a lower priority item.
best, Robert Dodier