Uso de val preguiçoso para representação de seqüência de caracteres em cache

Encontrei o seguinte código na edição especial do JAXMag Scala:

package com.weiglewilczek.gameoflife

case class Cell(x: Int, y: Int) {
  override def toString = position
  private lazy val position = "(%s, %s)".format(x, y)
}

O uso delazy val no código acima fornece desempenho consideravelmente mais do que o código a seguir?

package com.weiglewilczek.gameoflife

case class Cell(x: Int, y: Int) {
  override def toString = "(%s, %s)".format(x, y)
}

Ou é apenas um caso de otimização desnecessária?

questionAnswers(5)

yourAnswerToTheQuestion