Is there a convention or common practice with respect to this for Debian in general? Or do most packages normally provide a way to create shared libs?
in general libfoo.tar.gz becomes libfoo<soname> and libfoo<soname>-dev. The shared library goes in the libfoo package along with any user docs; the headers and .a go in the -dev package, along with any programmer docs. Occasionally a -doc package will be made if the documentation is copious.
Most lib packages provide shared libraries, it is the preferred form of use.