I have been taking the approach of passing the parameters from the browser page that are required to assemble a data class within the renderer which is then passed to the template. This is based on queries I made earlier (I think in the themes forum).
For example I might pass a course id which is then used to form a link with moodle_url within the renderer function, added to stdClass and then passed to the template. The link text might be a get_string in either the renderer or the template.
Is this still an acceptable way to do this or should the full url and text string (and the rest of the data class) be formed in the browser/controller page or doesn't it matter either way. If so this seems to make the renderer redundant in many cases, especially where you are suggesting the renderer simply returns its result to the browser page.
However, I'm also using the renderer functions to output the standard header and footer (eg $this->output->header()) rather than returning the html to the view/controller page where one would then use the global core renderer instance $OUTPUT. I'm pretty sure I've seen that as advice also - I mean the latter doesn't even sound like the right thing to do (to me anyway).
If one or the other approach is preferred it would be good to have a clear explanation as to why. Some documentation somewhere in Moodle might also be useful (it may exist and I may have missed it of course).