For what I have experienced and observed trying out a bunch of different clients, I believe that Iris shows events (notes or else) as it receives them from relays. To (give the impression of) being fast and responsive, it uses placeholders for events and later, when it receives the contents, it places them on those place holders. The firs impression is that of a very fast and responsive client, but a little later you realize that the experience is horrible overall, as you describe.
Other clients, like Astral or Coracle take a very different approach. They start showing the most recent events and keep going backwards. I guess that regardless of the order they get them, they check (cryptographically) all events but don't show their contents until their time to be shown comes. The result is that they seem to be slower and less responsivethan Iris, but the experience is much more pleasant.
I'm not a developer myself, but I tend to agree with @PROTOPHREAK in that relays could be a little less dumb (not too much, since the protocol tries to be simple enough for the clients to be the ones in control) and be able to relay events to clients in a better fashion. Perhaps it should be enough if they'd relay events in "chronologically reversed order", that is the more recent events first.
I think it'd also be convenient if clients queried for less events at a time, for example the ones posted during the last hour, and after a little while, queried for the ones from the previous hour, and so on, until a certain number of "chunks" (hours), and keep going later when the user somehow (clicks or scrolls or use a gesture, etc.) "asks" for older events (if they ever do).
Also, if clients had a way to discard older events one that newer ones arrive, the amount of memory and processor power used could be dramatically reduced. Having to clear the browser cache or close and reopen the browser tab to get that effect, which is what we're currently doing, are both a little inconvenient.
Anyway, that'd be my 100 ⚡, the ones of an user who understands only a little of software development. I've been dragging my feet to start learning any JS. Perhaps its time for me to start doing something about it, because as @PROTOPHREAK, nostr is giving me the itch for trying things. 😂
Hit me at nostr: ama (npub1ttk90a6kkphe9h0dys9mqy38wxa7t4t7g39vys76f4cglqr49rgqh6xxpx).