alternative demonstration

The tree that gets repeated is the "last one".  The "last one" depends on whether you have called GetEntries().  If you haven't, the "last one" may contain no events itself, in which case no problem of duplicates is observed.  However, if you call GetEntries(), then the chain never sets the address beyond the last valid tree, so that one is the "last one".  If you don't call GetEntries(), you can still get duplicates if there are broken addresses in the chain, and the last address is not broken.