Sounds more like the Debian way of packaging shared objects, but it
doesn't solve the resulting conflict on libfoo.so in devel packages.
There's no conflict in -devel packages. libfoo.so is a symlink to the real
libfoo.so.$major and only one -devel is allowed to be installed at a time and it usually
matches the latest libfoo$major package.
There is a guideline for a -lib or -libs sub-package if the
libraries
may be usable without the whole package, if I remember correctly.
Indeed. but it doesn't seem to address multiple major version library cohabitation --
for the purposes of bridging library major version updates (i.e. ABI breakage) where other
packages depending on the lib might not have been updated to the new ABI.