That would be extremely interesting if that is a fix.
PlatformIO is based on the SCons build system (written in Python), and uses its API calls to add the source files to the build (e.g. here, here). I’m not an expert enough on that to see how the link order could be easily changed there / what it depends on.
But still what one can do is log all compiler commands (as you’ve already done with pio run -v), add the absolute path to the compiler in front of the sdcc command (aka C:\Users\<user<\.platformio\packages\toolchain-sdcc\bin), write those to a .bat batch file and run it. Then load the resulting .elf file into stm8-gdb (C:\Users\<user>\.platformio\packages\tool-stm8binutils\bin) and see what it says. If you or anyone can find a combination of flags, command reorders or linker reorders that causes stm8-gdb to not say Dwarf Error and (no debugging symbols found), that would be a major breakthrough, and then we can look into teaching PlatformIO how to do it correctly.