sourceRectAtTime takes into account ascending and descending characters, font size differences and a bunch of other things. It also will read the size of a text box or text area that you draw. If you need the height of the box to stay the same just define the Y value in your expression.

If you want to make everything scale then you need to add a reference the scale value of the layer or the scale value of a text animator.