Yes, this is exactly how it works, whole reason for "sr" is exactly this function.
"sr" is for splitting long, complex lines with phrases that will re-occur in different places throughout the game, example: each occurrence of stats changing. "sr" finds them, split into parts and then (if it's possible) splits them again until noone is left. See my previous post for good splitting example (EDIT2 one).
Then comes "r" substitution. You use this to translate status line once and set-up ever-changing variable (instead of translating it 100 times in different scenarios).
You're using "sr" instead of "r" and weird shit is bound to happen.
You must be registered to see the links
and see to yourself how this work under the mask. I strongly advise you tu use named groups and "_i" thingy to mark groups NOT to be translated again.