The implementation of GetSourceServerData calls into Microsoft.DiaSymReader.Native.*
That code checks only the "sourcelink" stream. That's good enough for managed binaries.
However, it doesn't check multi-part streams emitted by the C++ tooling.
These streams are named "sourcelink$1", "sourcelink$2", etc.
For an example of how to do it right, see this code in PerfView: https://github.com/microsoft/perfview/blob/main/src/TraceEvent/Symbols/NativeSymbolModule.cs#L1136