Es casi lo que decis en este mensaje, la diferencia es que no lo pensaria como que "se actualiza la variable suma", ya que en esa parte de la ejecucion suma es lo mismo que temp, exactamente lo mismo. Luego cuando decis que seguiria siendo 2 no es correcto, ya que antes del writeln haces "suma := suma + num" por lo tanto suma (y temp, porque es exactamente lo mismo) pasa a ser 4, resultando en que el writeln(temp, aux, num, suma) imprima 4 4 2 4.