I just started learning Go and I got confused with one example about using defer to change named return value in the The Go Blog - Defer, Panic, and Recover.
The exam
According to the Go Specification:
Return Statements A "return" statement that specifies results sets the result parameters before any deferred functions are executed.
Defer Statements "...deferred functions are invoked immediately before the surrounding function returns..."
So yes, as you assumed, the named return variable is assigned, then the deferred statement increments it.
I would add that named return parameters can lead to subtle bugs, and generally should be avoided unless there's no alternative.