Почему для закрытия канала и ожидания работы горутин используется отдельная горутина, а не main функция?

golangасинхронностьгорутиныканалымногопоточность