Con Giancarlo ne avevo già parlato qualche mese fa, quando era da un cliente e aveva scoperto il comportamento non proprio "intuitivo".
Adesso stavo cercando altro ma ho trovato questo post che discute del problema e ne da anche una possibile soluzione, anche se alla fine Janky ha implementato il sistema usando un'altra tecnica basata sui Work Item e non sulle label.
In pratica, le label non contengono le indicazioni dei file cancellati, e quindi quando si fa una merge by label le cancellazioni non avvengono. Il motivo è presto detto, se un file non appartiene alla label non è detto che sia stato cancellato, potrebbe benissimo non fare parte della label ma essere ancora presente nel repository.
E' per questo motivo che da un altro cliente dove in precedenza avevamo riscontrato lo stesso problema, venivano cancellati a mano i file che "avanzavano" dopo la merge.