It doesn't, with rare exceptions.
[Details.]
TCT takes memory leaks [ref] very seriously. Few ever escape into a release, and few known ones survive long.
However, there are at least an order of magnitude more perceived memory leaks. These result mainly from two causes:
An example of what I mean by an application-level memory leak is a failure to clean up such Tcl global variables as the token the http package returns from a getURL.
[More explanation.]
[Pertinent posts [L1 ] [L2 ] by tclguy on Tcl's allocator, high-water marking, ...]
Also of interest: