There's also an implicit assumption in your question that every notable user event has an associated server-side request. If page changes and whatnot are being handled completely client-side after the first request you might need a little extra monitoring just to get the same level of detail you would otherwise have from traditional server logs.
I could be wrong here, but I think the big feature in client-side analytics isn't that they offer some sort of special data or insight; the selling point is that anyone can add them to basically any web hosting solution (including CDNs you don't control or random WordPress sites) with a single copy/paste. It optimizes ease of adoption _at the cost of_ probably better analytics.
Elaborating on that "better analytics" point -- the web is varied enough that even if you want to track your users' activities it's really hard to interpret client-side data correctly. E.g., in the landing page example above, if your heartbeats stop hitting the server did the user navigate away or did they go to another tab for a bit? In that same example, are your heartbeats going through because the user is reading and pondering your content or because they've gone to make a sandwich (you can disambiguate this a bit if you also keep track of something like the last time the user did something, but it's not perfect)? On top of that, you don't get metrics from people with JS disabled, with certain DNS blocklists, people with slow connections, etc.