¿Por qué hay dos formas de declarar variables en Go, cuál es la diferencia y cuál usar?

Según la referencia de Go, hay dos formas de declarar una variable

Variables_declaraciones (en el formato devar count = 0 ovar count int)
y
Short_variable_declarations (en el formato decount := 0)

Descubrí que es muy confuso decidir cuál usar.

Las diferencias que sé (hasta ahora) son que:

Solo puedo usar uncount := 0 formato cuando está dentro del alcance de una función.count := 0 puede serredeclarado en undeclaración corta multivariable.

Pero se comportan igualpor lo que sé. Y en la referencia tambiéndice:

(Elcount:=0manera) estaquigrafía para una declaración de variable regular con expresiones de inicializador pero sin tipos

Mis confusiones son:

Si uno es solo la forma abreviada del otro, ¿por qué se comportan de manera diferente?¿En qué preocupación el autor de Go hace dos formas de declarar una variable (por qué no se fusionan en una sola forma)? ¿Solo para confundirnos?¿Hay algún otro aspecto en el que debería mantener los ojos abiertos cuando los uso, en caso de que caiga en un pozo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta