Hey Michael,
Well, focus will not actually be updated, i.e. no communication from i3 to X11 happens because of our state machine model. con_focus() and rendering the tree are both supposed to work at any time and be pretty fast, so it’s not a big concern.
Thanks for the explanation. I did not delve that deep into the source code to be aware of such machinery. My changes were merely superficial and wouldn't have been possible without Kevin Murphy already having done the real work.
In case you feel strongly about this, you could send a patch which would short-circuit this code path and then try all the weird corner cases we have (various layouts, decoration styles, mouse transitions between monitors, etc.). Personally, I don’t think that’s worth it.
I certainly trust your judgement :) Cheers, Marco