Это стандартная модель. Select это диспетчер событий. Он слушает
события и в зависимости от типа события исполняет что надо. Поэтому
остальные операции не блокируют. В данном случае сначала появляется
событие что кто то стучит в socket а потом отрабатывается функция
accept. Проверка типа события if (FD_ISSET(master_socket,
&readfds)). Точно также если, что то пришло по сокету то
проверка другая для отработки read if (FD_ISSET( sd ,
&readfds)) . Если бы эти функции вызвать без select то они блокировали бы поток.
П.С. Не касается это функций bind и listen.
https://www.ibm.com/docs/en/i/7.1