I don't think that this is a bug. Wouldn't you expect this to happen? I would \:\)

You are creating a local variable with the same name as the function return variable, and so obscuring the special variable that you use to return values.

It's similar to having a global and local variable with the same name - you cannot access or change the global variable while the local variable is present.

This behaviour is the same in 4.53