Это разрешено:
package main
var a = 3
...
Но это не так:
package main
a := 3
...
Почему бы и нет? Почему не может быть обработано короткое объявление переменной вне функции регулярное объявление без типа? Просто для упрощения синтаксического анализа?