Я cp руками уж лет 20 не дёргал, поэтому все “нюансы” из головы давно вылетели, но тут пришлось и я с удивлением обнаружил, что это чудо не копирует директории, пока его специально не попросить об этом.
Интересно, какая была для этого причина? Почему для копирования директорий я должен использовать дополнительные параметры?

А почему это всякие разные special files, ну, например, /dev/null, /dev/fb*, /dev/input/event* и т.д, читаются при помощи read?
Читать нельзя, писать нельзя, очень полезный файл. А что такое файл, кстати?
Потому что они разные.
Как это?? Ты не можешь зайти в директорию? Не можешь файлы создавать в директориях? Что у тебя за ОС такая интересная?
Ну да, не могу использовать read/write, чтобы читать/изменять каталог.