Ты можешь прописывать и имена пакетов, в дополнение. Просто без них - по одним либам - портабельнее, и дистрибутив в целом разивать удобнее.Например, очень типичная ситуация - есть пакет megaproga, он собран с библиотекой megaliba.so, которую предоставляет пакет usefulstuff. В какой-то момент мейнтейнер пакета usefulstuff решил, что многим оттуда нужны только библиотеки, и бинари и доки - только иногда, и разделил его на usefulstuff-libs, usefulstuff-progs и usefulstuff-docs. Если зависимости были прописаны только rpm'ом автоматически, то по зависимости megaproga: megaliba.so пакетный менеджер вроде yum или apt автоматически найдет, что эта библиотека предоставляется пакетом usefulstuff-libs. Или, скажем, можно обновить usefulstuff -> usefulstuff-libs + usefulstuff-progs при установленной megaproga; зависимости соблюдены, ведь megaliba.so в системе.
А вот если мейнтейнер megaproga решил с дуру продублировать зависимость на имя пакета вручную (хотя иногда, конечно, это имеет смысл, например зависимости к megaproga-data), то опаньки, обновиться с usefulstuff на usefulstuff-libs при установленной megaproga не выйдет, завимости будут нарушены. Нужно пересобирать megaproga. (хотя в реальной ситуации у usefulstuff-libs может быть прописано provides: usefulstuff и obsoletes: usefulstuff < x.y, и все пройдет нормально). Профита от ручных зависимостей никакого, а недостатки есть.
Ну а то, что rpm при попытке установить в обход yum напишет об отсутствии зависимости "megaliba.so", а не "megaliba.so и usefulstuff" - это сущие мелочи. Да и если приспичит, yum можно вручную попросить найти имя пакета по библиотеке - актуальное для текущей базы, а не в момент сборки megaproga. А до популяризации yum это делалось средствами rpm, по базе comps.