Doesn't getOrElse allocate a thunk for each invocation?