Разработчики поступили хитро. В самой спецификации не указано, что она создаёт поток в понимании threads. Они вводят independent concurrent thread of control, который может быть чем угодно. Всё отдается на откуп реализации. Если брать компилятор с
golang.org, то он поддерживает m:n-планировщик и работает как m:1 в зависимости от целевой платформы или настройки