From the beginning, CSS tutorials said just what you said, that the web is not the printed page and that you should not strive for pixel-perfect layout.
Which is exactly what anyone that I've talked to that gets paid to write CSS in any aspect is expected to do with it; pixel-perfect layouts.
I already had the "pleasure" of being in a project whose customer was refusing to pay as it was pixel perfect with their Powerpoint designs and across all major browsers and OSes. :(
It's not necessarily about pixel perfect. Even basic things like "two divs horizontally" are not intuitive in CSS, especially pre-flex-box.
CSS grid is a big improvement here though.
Use spans then...
The selling point of CSS tho is that layout change should not require change in html.