In the link to patched strip.sh.in file, the call to package_source_file is meant to be done in both elf and pe cases. It's not clear to me if you did your tests with that part active or not.
I disabled `package_source_file` as it does not work for PE as-is. That function eventually calls `debugedit`, which seems to support only ELF for now. I didn't survey equivalent commands for PE due to lack of time.
The generic idea I'm pushing for is to maximize the sharing of code betwen elf and pe cases. So what I would do for the changes in strip.sh.in:
Thanks for the suggestion. I prefer to avoid fallbacks as that pacman script already runs for ages, particularly for packages with hundreds of PE files like wine.
At the end, running wine with WINEDEBUG=+dbghelp should give you the actual path the split debuginfo is read from (and it should be from /usr/lib/debug/.build_id)
I remember dbghelp fails to find symbols when `/usr/lib/debug/.build-id/xxx/yyy` exists. Specifically, dbghelp only looks into such a file when searching for debugging symbols, and `/usr/lib/debug/.build-id/xxx/yyy.debug` is not checked at all. I don't have time to re-test and gather logs, though.