It kind of depends on precisely what we mean by "object file". The Go
compiler emits a file in a binary format that can be read by tools
like "go tool nm" or "go tool objdump". It is in a format used only
by Go, and can't be read by tools like plain "nm" or "objdump". It's
true that the file happens to be readable by "ar". But it's not an
archive in any useful sense, because the contents of the archive can't
be read by any tools other than the Go tools.
As it happens, the "go tool compile" -pack option will emit the same
file. The only effect of -pack is to change the default output name
from x.o to x.a.
So it's just semantics. Maybe the documentation could describe more
precisely what is happening, but it's not wrong.
The reason that object files look like archive files boils down to
cgo. When using cgo, the go command will add other files to the
archive. Because object files look like archive files, adding those
other files just requires appending them to the compiler output. So
it's an efficiency hack.
Ian