There are trade offs for using the DOM vs. a custom <canvas> renderer, however I think they’re worth it for the types of applications that can be built this way.
We’ve also put a ton of thought (and opinions) into the interactions in tldraw. Some of this can sound pretty ridiculous, like rotating your cursor when your rotate a selection, while also counter-rotating the cursor’s shadow to preserve light direction. But especially with this sort of app, you really notice those details when they’re not there. As a product for developers, my hope is that the quality and attention to detail become part of the value proposition! Users certainly notice it.
Also—this answer was exactly what I was hoping to be shown. It sounded like tldraw was capable of a lot more than drawing boxes with arrows that moved, but I hadn't figured out exactly what that was--now it all makes sense.