I think you are correct.
From what I understand, the icons themselves have an attached piece of metadata, coordinates that are used to calculate the position of the icon. The issue happens when something changes this coordinate system after this calculation, like screen resolution changing when accounting for another monitor, fractional scaling or other elements like the taskbar.
I don't know for sure, but that's what I think it's going on as far as I can tell.