On Thu, Nov 17, 2016 at 12:10 AM, Eric Voskuil via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
Both of these cases resulted from exact duplicate txs, which BIP34 now
precludes. However nothing precludes different txs from having the same
hash.

The only way to have two transactions have the same txid is if their parents are identical, since the txids of the parents are included in a transaction.

Coinbases have no parents, so it used to be possible for two of them to be identical.

Duplicate outputs weren't possible in the database, so the later coinbase transaction effectively overwrote the earlier one.

The happened for two coinbases.  That is what the exceptions are for.

Neither of the those coinbases were spent before the overwrite happened.  I don't even think those coinbases were spent at all.

This means that every activate coinbase transaction has a unique hash and all new coinbases will be unique.

This means that all future transactions will have different txids.

There might not be an explicit rule that says that txids have to be unique, but barring a break of the hash function, they rules do guarantee it.