The document you’re thinking of, detailing ACES support in various applications, is here (read only):
If anyone is interested in updating the document for more current versions, let me know. I’d be happy to provide an editable link. Just message me.
For those interested in implementations, I think the Nuke nodes are supposed to be a reference. The OCIO Colorspace node creates the path from one colorspace to the next with this call
m_processor = config->getProcessor(context, inputName, outputName);
which leads to this call to create a color space conversion
processor->getImpl()->addColorSpaceConversion(*this, context, src, dst);
which eventually leads to this function
which takes two colorspaces and concatenates the source colorspace’s to_reference (or inverse from_reference) transforms with the destination colorspace’s from_reference (or inverse to_reference) transforms.
So… the code is pretty clear. The reference colorspace isn’t the first colorspace. It isn’t the space pointed to by the ‘reference’ role. It’s the space that the config colorspace’s various to_reference and from_reference transforms use as a target or as a source. Hopefully all the colorspace’s in the config agree on that definition!