The docs aren't clear about this, but this has been a feature since CanJS 1.x that if your view data is a deferred, you will get a deferred back. Example from my Chrome console:
this is not the case when your view is in the form of a function, though:
can.view(stache, $.when({text : "Bar" }))







