Concurrency in Go is a programming model, specifically CSP. They have been very clear about this from the beginning and saying they failed to deliver on it is disingenuous.
Note that I was not talking about the actual implementation or the indeed perfectly open discussion in the docs but rather the way the language was sold, most of which happened outside of Google. Even though e.g. Pike was very open about this, there was a lot of excitement of the magic scaling pixie dust variety around HN, Twitter, meetups, etc.
Almost every person I know who started with Go got a long way in before doing some benchmarks and realizing that they were only using one thread. I know the scheduler had issues but I think setting the default to 2 would have avoided people going so far before learning that the language can't handle everything they need to care about.
And it did and does, provided you have a workload suited to many CPUs. It's just that with the ancient scheduler, setting GOMAXPROCS>1 with a concurrent but not inherently parallel workload would often be slower. It got a lot better around 1.2 and is finally a non-issue in 1.5.
Don't forget the race detector! It has also gotten easier to detect subtle concurrency errors which in turn means less deterministic execution is easier to handle.