I present ldd2rpm, a little script to find which rpms are needed to satisfy all the dynamic-linking requirements of listed binaries/shared-libraries. May it assist you in sanity-checking and bloat-shaming package dependencies.

#! /bin/sh

rpmqf() {
   rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" -f "$1"
}

for program in $@
do
   rpmqf "$program"
   ldd "$program" | grep '=>' | awk '{print $3}' | grep / | 
   while read file
   do
        rpmqf "$file"
   done
done | sort -u

Use it thusly:

% ldd2rpm /lib64/libpcp.so.3
avahi-libs-0.6.31-30.fc21.x86_64
cyrus-sasl-lib-2.1.26-19.fc21.x86_64
dbus-libs-1.8.14-1.fc21.x86_64
glibc-2.20-7.fc21.x86_64
nspr-4.10.8-1.fc21.x86_64
nss-3.17.4-1.fc21.x86_64
nss-softokn-freebl-3.17.4-1.fc21.x86_64
nss-util-3.17.4-1.fc21.x86_64
pcp-libs-3.10.2-1.fc21.x86_64
zlib-1.2.8-7.fc21.x86_64

You can feed that list to a pipeline suggested at stackexchange to find transitive dependencies:

% repoquery --requires --recursive --resolve `ldd2rpm PATH`