a developer can not expect anyone to individually go get 20-plus different packages
Because the 'go get' command fetches dependencies recursively, there's no need to 'go get' packages individually.
the developer is forced to remember which packages the application uses, and which are other projects
The 'go list' command will tell you the dependencies for an application: go list -f '{{.Deps}}' path/to/application
For Slartibartfast I decided to give this project its own Workspace, with its own $GOPATH, and put the entire Workspace into git.
This is not the recommended practice.
each package is expected to be in its own source repository
A repository can contain more than one package. There's no requirement that a package exist in a repository.
go get probably works great for the needs inside of Google
Google does not use 'go get' internally.
anything placed in the src/[package] directory gets compiled into the resulting binary
Go files matching the build tags are compiled into the resulting binary. Everything else is ignored, including Go files that don't match the build tags.
That's enough nitpicking. The take away that I get from reading this article is that "How to Write Go Code" (http://golang.org/doc/code.html) needs improvement. The document was overhauled earlier this year to make it easier to understand. Apparently, it's not easy enough.