If clients were a little smarter about how they treat each relay (i.e. asked different relays for different things depending on what they know about each) I think this would fit well into relays -- not as "part of the protocol", but just as an extra thing you can request. Putting it on relays has the small advantages of
a) reusing the communication channel; and
b) making it interoperable so these tally providers can be easily replaced (not that an HTTP provider couldn't be like this too).
I just don't want clients to start requesting tallies from every relay and then every relay thinking they must implement this because somehow it is "part of the protocol" or "everybody else is doing it".