select: отправка в закрытый канал против чтения из закрытого
Оба канала уже закрыты. Что выведет select между отправкой в закрытый буферизованный канал и чтением из другого закрытого канала? Что изменится, если doneCh не закрывать? А если добавить default?
Сначала подумай без запуска — на собесе компилятора не будет.