I know this join discussion has come up again and again, and with multi-key get it's really not that hard to do a join in two steps. But I was playing with include_docs and it got me thinking -- couldn't there be a dereference parameter on views that acted like include docs? So you could pass in ?dereference=tags, for instance, and in the return the view could grab all tag attributes and dereference them if their value is a string containing an existing _id. This would be a *real* join, all without any complicated accounting -- and it would put an end to the whole *but sql can do this*... whining.
Bonus points for being able to pass in a list of dereference attributes (?dereference=[tags,comments] or ?dereference=tags&dereference=comments) and even better, if the given attribute's value is a list, iterating over it and dereferencing any string containing an existing _id. This would be far nicer than sql joins -- you would essentially get real many-to-manies sans join-table awkwardness. Does this seem logical? Doable?