defer fmt.Println("a"); defer fmt.Println("b")?При выходе из функции defer выполняется в порядке LIFO (стек): сначала последний зарегистрированный - "b", затем "a". Итог на двух строках: сначала b, затем a.
Первый defer кладёт вывод "a" в стек, второй - "b". При выходе из функции стек разбирается сверху: сначала выполняется "b", потом "a". Так же освобождаются ресурсы в порядке, обратном получению.