I think it’s because Drupal allows a site to customize how many comments show up for each page. Once you’ve viewed a top-leve thread, it doesn’t know which comments you’ve seen on the first page and which you haven’t, so it just marks them all as read. That’s my theory anyway.