Think of it as a distributed client-server architecture rather than strictly pure-server or pure-client. Client-side computation is easier because you only need a browser, but nothing prevents you from computing on the server, too; you just need a way to initiate this computation and return results to the client. (The WebSockets example in my post hints at this.)
Yes, you won’t push big data (or secure data) and big compute down to the client, but often there’s still some computation you can delegate to the client. And that’s important because it allows rapid interactive exploration of the results. For example, if your server returns a small-ish data cube rather than a single precomputed view, the client can query interactively without the round-trip latency to the server.
Enabling client-side computation does not guarantee that your environment is portable (i.e., runs self-contained in a browser). But it at least opens up opportunities for greater client-side exploration.