Those are good considerations when designing an algorithm. Algorithms should not necessarily run purely on the client, as it could end up downloading a lot of notes that don't get seen. There has been discussion of algorithm-providing DVM's.
Discussion
Yeah, I played with the DVMs on Amethyst and I think it’s a nice sneak peek at the future.
I just learned about this website recently which explores the ideas a bit: