Actually it kind of does: each package is restricted to exactly one directory.
In other words:
github.com/foo/bar is an entirely different package than github.com/foo/bar/abc (abc is not included by its parent).
Yes, this is convention: Your GOPATH will contain your project(s) in the directory structure I laid out in the previous toot.