Lo apunto para la próxima versión.
Al convertir la incógnita en dato, podría comprobar si la incógnita ha sido calculada y usar ese valor para el dato y en el caso de no ser así (la incógnita tendría como valor "?") entonces usar el valor inicial de la incógnita para el datos.
Si pasamos el dato a incógnita el problema estaría en que el valor del dato fuera una operación o una expresión en función de otro dato, en ese caso no podría copiarlo ya que los valores iniciales sólo admiten un número. Podría intentar evaluarlo y se produce un error dejar el valor inicial en 1.
¿Te parece bien así?