My least favorite feature is block scoping combined with the := operator.
For example, this works:
var x Foo
x, err := doSomething()
if err != nil {
...
}
this does not: var x Foo
if x, err := doSomething(); err != nil {
...
}
This pattern (or some variant) introduces more bugs in my code than I would like to admit.