Порядок выполнения init() строго определен:
// a.go
var x = compute() // 1. переменные пакета
func init() { } // 2. первый init a.go
// b.go
func init() { } // 3. init b.go (b.go после a.go по алфавиту)
Каждый пакет инициализируется ровно один раз, даже если импортируется из нескольких мест. Порядок файлов (алфавитный) - деталь реализации gc-компилятора, но на нее опираться не рекомендуется.