And in practice, at large companies, forced expiration is used to control email storage space, in part because of the duplication.
So at very minimum, you want something threaded like email, but stored in a single location, so storage/duplication/deletion aren't problems, and indexed searching is available. This also allows things like tagging someone into a thread after it already started.