yes they are hard to get right because you need to manage data in a background thread and not pester the render thread ever
i've wanted to dig deeper into that kind of stuff, when i first started programming as a kid i wanted to make graphics... my first big achievement was a flicker free mouse sprite, used bitmasking - i can't remember where i learned how to do it but apparently microsoft didn't figure it out for 20 years after that and windows had a flicker free cursor only because of graphics cards, even though it's just a bunch of simple logics