I didn't find this in my search before posting my proposal on "pipe methods" to explicitly allow this.
Anyway, I assumed it was not legal in JSON-RPC as-is—and it's certainly not handled by any of the libraries I looked at—so I wrote a proposal to add it to the standard, and wrote and modified some libraries to handle it.
It's actually very useful, for essentially many of the same cases that iterators/generators/lazy lists/etc. are useful in programming, or where SAX style is useful instead of DOM style in parsing, and so on.
The toy example I used in my proposal was generating primes. If I tell the service to generate a large number of primes, I want to start getting results back (and displaying them to the user, and allowing the user to cancel) right away, not hours later. For a more realistic example, I've got a service that looks up cover art for an album, using a variety of different services, and starts feeding back URLs as they come in, so you don't have to wait for all of the services to return/fail/timeout before you start downloading the images and displaying them to the user.
There are ways around this without multiple responses—as suggested in your email, and in fact in the original question you were answering. But they're more complicated, more verbose, and more stateful. As the OP says, "this seems overly complex when there is already a JSON-RPC id, itching to be used..."
The explicit "get next result" method (your second suggestion) requires the server to manage jobs for each client. Which means it's not just stateful, it pretty much requires a session management infrastructure. Also, the "job id" you suggest is duplicating the exact same functionality that the "id" already serves, but at the application level instead of the protocol level.
The duplex method is less problematic, although it does still require some kind of application-level duplication of the "id" scheme (unless each client is only ever going to make a single call, which seems implausible). But it requires bidirectional communication. I'm not sure if that's even allowed in JSON-RPC 2.0, but it's definitely not required, and it's hard to implement, and most libraries don't handle it, and if you're using HTTP it may not even be possible.
In fact, a big part of the reason I implemented "pipe methods" is that it was much easier to add to existing libraries than bidirectionality.