Lo explicado por Fede es cierto si, por ejemplo, el control del Font que recibe la asignación lo tenes vos y no hay nada tras bambalinas.
Ocurre que con la VCL, vos regularmente podes hacer algo como:
Código Delphi
[-]
Canvas2.Font := Canvas1.Font
Y siendo que el Font en el canvas es una propiedad, regularmente su método de asignación evitará que Font de Canvas2 apunte a Font de Canvas1, y llamará a assign para copiar sus valores.
Por ello es que pueden hacerse muchas "asignaciones" de modo seguro en la VCL.
Hasta luego.