Originally, I felt that it did not need to, because SessionController never allows the selection to leak out of roots.
Now that I think about it, I feel that even though the range itself does not have endpoints in different roots, we do encounter things like annotation paragraphs... So yes, I'll add root-filtering here.