Es como una flecha sin usar un símbolo menor que <= como si todos hubieran dicho operador de "asignación". Aportando claridad a lo que se está estableciendo en dónde en contraposición al operador lógico de equivalencia.
En matemáticas es como iguales, pero A: = B significa que A se define como B, se puede usar una barra triple igual para decir que es similar e igual por definición, pero no siempre es lo mismo.
De todos modos, señalo estas otras referencias que probablemente estaban en la mente de aquellos que lo inventaron, pero en realidad es solo que se tomaron planos iguales y menos iguales (o se confundieron potencialmente fácilmente con = <) y se necesitaba algo nuevo para definir la asignación y eso tenía más sentido.
Referencias históricas: Vi esto por primera vez en SmallTalk, el lenguaje de objetos original, del cual SJ de Apple solo copió la parte de Windows y BG de Microsoft se diluyó aún más (de un solo hilo). Finalmente, SJ in NeXT tomó la segunda lección más importante de Xerox PARC en, que se convirtió en Objective C.
Bueno, de todos modos, solo tomaron el operador de asimiento de dos puntos iguales de ALGOL 1958, que luego fue popularizado por Pascal
https://en.wikipedia.org/wiki/PARC_(company)
https://en.wikipedia.org/wiki/Assignment_(computer_science)
Las asignaciones generalmente permiten que una variable tenga diferentes valores en diferentes momentos durante su vida útil y alcance. Sin embargo, algunos lenguajes (principalmente estrictamente funcionales) no permiten ese tipo de reasignación "destructiva", ya que podría implicar cambios de estado no local. El propósito es hacer cumplir la transparencia referencial, es decir, funciones que no dependen del estado de algunas variables, pero producen los mismos resultados para un conjunto dado de entradas paramétricas en cualquier momento.
https://en.wikipedia.org/wiki/Referential_transparency