I'm going to assume no one has an answer to this given the stunned silence.
I could find a soft solution for number 3 above - if you have two devices that read identical name strings that are precisely one bus adapter id apart, where one has fanspeed detection/control and the other does not, they are likely to be twins. Parsing for 5900 or 6990 in the name string increases the probability even further. Note all this is circumstantial evidence and I wish there was a unified identifier between the two.
The other questions I have yet to find a solution to. The lack of anything correlating opencl devices and ADL adapters seems unworkable.
This question still stands, and even with ADL v4 SDK and OpenCL 1.2 I still do not see a way to reliably correlate the OpenCL devices with the ADL reported devices.