I see no problem with following calculation.
Refine[ComplexExpand[b I /(a + b I)], {Element[a, Reals], Element[b, Reals]}]
(I a b)/(a^2 + b^2) + b^2/(a^2 + b^2)
The real and imaginary parts are nicely separated.
However, the next calculations are confusing to me. Please explain how I get the output. Should I get
b^2/(a^2 + b^2)
as I declared a and b are real?
Refine[
Re[(I a b)/(a^2 + b^2) + b^2/(a^2 + b^2)], {Element[a, Reals], Element[b, Reals]}]
-a b Im[1/(a^2 + b^2)] + b^2 Re[1/(a^2 + b^2)]