Yes, each time you assign to a variable like you did with scr, it increments the reference count. Not having seen your code, I'm just blindly guessing, but I imagine each of your functions looks something like this:
function one()
scr = GetGlobalAA().scr
do some stuff
two()
...
end function
So when two() gets called, scr exists and holds a ref count. Now two() probably does much the same thing, creating its own local scr variable which increments the ref count again. So even though it's not being passed as a parameter, you still have at least one variable referring to the screen in each function on the stack.
However I think you're overthinking this a bit. Your screen object persists through your whole app now, by design, so it doesn't really matter how many references it has. It never gets destroyed until your app exits.
--Mark