[Antoine Pitrou email@example.com]
... Discourse doesn't allow anything of that. It doesn't even *record* anything about the topical discussion flow, so it's not like a third-party tool or plugin could fix the problem, since the information is lost.
If there's been a direct reply to the message you're currently looking at, there's an "N replies" button at the left end of the status line at the bottom of the message. You can click that to get the direct replies expanded right then and there, but offset to the right. The UI only caters to one level of this, though. If there is no "N replies" button, you're looking at a leaf node.
Similarly, if you're looking at a message with a quote from a previous message, there's an up-arrow icon to jump directly to the quoted message. Better, there's also an "expand" icon to show the _entirety_ of the quoted message inline. I've grown to really like that, because I sometimes wonder whether important context was snipped away.
So parent -> direct_child links _are_ recorded, but the UI seems to directly support only expanding the first-level children of a message in the flat ordered-by-time view. If you, e.g., want to see grandchildren too, it seems you need to go to a child in the flat view and click _its_ "N replies" button.
You're basically forced to accept the flat discussion view, which is completely unworkable to review a long and branchy discussion.
There are two more fundamental problems with long and branchy discussions: they're long, and they're branchy ;-) Active participants have their own mental map of how the discussion is going. People browsing are going to get tied in knots no matter how it's displayed. Although, ya, I'd also like ways to make it more tree-like than it is. Sometimes. For a discussion I'm actively involved in, it's usually more convenient to see a flat view ordered by timestamp.