I think in this specific case the scrollbar appears for a microsecond and then disappears, and Popper.js caches the size of the scrollbar and doesn't update it once it disappears.
I think you're 100% correct.
I just want to mention that this issue is not present when I tried out Tooltipster. The tooltip was positioned perfectly with that package.
Perhaps look at their source code to see how they are doing calculations?
I want to add that @YoranBrondsema's suggestions worked like a charm for us! Both solutions (placing the poppers earlier in the DOM or using CSS to place it at the top) work to prevent the momentary flash of the scrollbar and the corresponding small jumps of the popper.
Adding top: 0 to the CSS class fixed this for me.
One year later and still not fixed.
This should be fixed in Popper 2 because we removed the broken logic all together.
Most helpful comment
Adding
top: 0to the CSS class fixed this for me.