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

То есть у пользователя должен быть свой какой-то отдельный cp? И вызываешь вручную ты его через какой-то другой баш, не тот, который исполняет скрипты?
Вот это чудеса…
Ну почитай основы юникс систем для начала.
Ок, начнём сначала. Зачем нужен отдельный -r параметр?
Читай выше.
Доброго тебе дня.