"The generate-id function returns a string that uniquely identifies the node in the argument node-set that is first in document order. The unique identifier must consist of ASCII alphanumeric characters and must start with an alphabetic character. Thus, the string is syntactically an XML name."
Unforunately there is no single clear definition of "ASCII alphanumeric character" that I can find. Some of the definitions include all ASCII characters in "alphanumeric" while others include only letters and numbers. XML names are clearly defined and they can include periods (among several other non-letter/non-number characters).
It can be argued that everything is working fine but it would probably be better if some other character than a period was used in the middle there.
This specifically is for Xalan 1.6 but the code (in the getSuffix function of FunctionGenerateID) is the same in Xalan 1.9 as well and probably other versions.