How exactly would that work? What if the SMTP module has an update that the "rest of SM" needs to be aware of or vice-versa? This gets ugly really quick. If the SMTP module, POP module etc. all run on a shared library / common interface and that changes or has to be changed then you have to do a full update of the platform anyways.
Then you get to the cat and mouse type game of what SMTP version are you on, what POP, what web mail, what core etc. etc. It becomes a development and support nightmare.