Apologies for the formatting, I’m writing this reply from my phone.
And sure enough, the modification of the string is the point -- it's a
cache! From gnus-sum.el:

; Since this is called not only to sort the top-level threads, but
; also in recursive sorts to order the articles within a thread, each
; article will be processed many times. Thus it speeds things up
; quite a bit to use gnus-date-get-time, which caches the time value.
(defun gnus-thread-latest-date (thread)
"Return the highest article date in THREAD."
(apply #'max
(mapcar (lambda (header) (float-time
(gnus-date-get-time
(mail-header-date header))))
(flatten-tree thread))))

Can we strip properties around the call, maybe?
I don’t think there’s need to do that. The change that I proposed in the patch should remove the unintended side effect (and thus fix the bug pointed by Alex) while keeping the caching behaviour intact (‘gnus-thread-latest-date’ code above will work as expected).