GetSpellByID only matches its caller when it lives in a separate file: MSVC 7.1 tracks callee register use within a translation unit, so TU boundaries show up in the generated code. docs/MATCHING.md collects these lessons. Co-Authored-By: Claude Opus 5.5 <[email protected]>