Reifying results definitely is an interesting dimension. Otherwise, the main difference seems to be parameterization, which makes new functionality possible, with the downside being that a function signature defines a new protocol which sacrifices compatibility.
It seems to me that for custom feeds, DVMs are a better choice than virtual relays if 1. you want to publish the artifact of your query, 2. you need to parameterize your request, or 3. you want multiple DVMs to compete.
This could definitely be interesting to support the use case you describe, but normally feeds are disposable, and are already parameterized using a well-defined protocol.
For example, you could get "trending" stuff from a relay that does the same complex computation, and exposes it in a standard rather than bespoke format (i.e. you don't need to know its function signature to use it). Relays can also tailor their results at least to the user (the "this" parameter) using AUTH, and charge that way also.
I like that you're basically applying the javascript event loop pattern we had talked about to support arbitrary computation, data > behavior. I wonder if nostrscript could use DVM as a secure callout to extra functionality.