I was flirting with a possible solution to this a few months ago…
This would make it so you only have to write the query logic on the server, vastly simplifying your client side:
In summary:
In your publication (on server) you would use the added/changed/removed API to tack on the subscription id to each document before sending it down to the client via something like {“SuBScRiPtIoNiD”: true}.
On the client, you would merely have to query MyCollection.find({‘SuBScRiPtIoNiD’:true}). You could easily make all of your subscriptions template-level, and keep track of each active subscription in the template state, via a template reactive instance variable, for example.