In general, all parts of Solr that choose a replica of a shard to send a request to should use similar logic.
From what I can tell, the HttpShardHandlerFactory.NodePreferenceRulesComparator is the most comprehensive replica request routing strategy within Solr. It would be great if this logic could be moved to the SolrJ package, so that it could be used across more of solr. Forms of this same decision making are found in many places, such as Streaming Expressions and SolrJ Clients (SOLR-12217). There's no reason that each should implement their own logic when they could easily share one. That way, additional routing parameters can be added in one place and be available for all types of requests.