> Is this leaked by `AllocChainEntry` or by `TclMergeReturnOptions` or what?

No... This traceback shows the allocation "history". A leak itself is somewhere else (there is no paired free for that alloc), not necessarily in dict implementation, and maybe even simple overwrite or lost of returned options (that dict object), because it was initially set by `Tcl_SetReturnOptions`.

And since it is TEBCresume, it may be some missed de-cache or whatever causing an oblivion of objects in exec-stack. E. g. I saw some potentially missed DECACHE_STACK_INFO/CACHE_STACK_INFO in [merge of TIP#636](info/91c2f411e7e71552) and some following check-ins, for instance, IIRC, in INST_LIST_INDEX_IMM, as I was searching for an performance issue by iterate/llength over dict (have no time for deeper analysis at the moment).

Anyway, if you don't see it in 8.7, can you try to revert [91c2f411e7e71552](info/91c2f411e7e71552), Don? Is it still there without that check-in?