Question re: 5.3 Function builder enhancement: let is allowed but not assignment

mutating get {
          guard let v = self[key] else {
              let d = value()
              self[key] = d
              return d
          }
          return v
      }

This looks a little bit dumb, but maybe far more understandable.