Why use self in a non-closure scope?