I tend to have a single thorn list with many thorns. Building executables is slow, and much time is spent in the final link stage. With shared libraries, this time could be much reduced. Using shared libraries seems to be simple on many architectures; there are either ld flags one can use, or one could use libtool for the implementation.
This would also be a first step towards building thorns (or external libraries) independently of each other.