Is there a preferred sequence?
SBUF = mychar; TI = 0; // or TI = 0; SBUF = mychar;
I'd use
TI = 0; SBUF = mychar;
SBUF = mychar; TI = 0;
I prefer if (_testbit_ (TI)) SBUF = mychar; and if (_testbit_ (RI)) mychar = SBUF; The _testbit_ routine produces a JBC instruction in the generated program code to simultaneously test the bit b and clear it to 0.