At first I thought the same as you, but the problem is actually subtler. It's not about an immutable reference to a mutable object, but actually a reference that gets re-evaluated each time it's invoked, which is something that cannot happen with Scala `val`s!