Thinking about this overnight, there's only one other idea I could come up with to forward it properly: have the hook modify the DISPPARAMS in-place as required, and either return a special value to indicate this, or return S_FALSE and we check if they were modified (to free them after the call).
I'm not sure how much of a hack this is, though. It sounds a bit ugly to me, but it avoids passing a func_info_t, so if it's what it takes...
BTW how about the jscript patches? They're technically not dependent on these ones, and those are the ones I mainly would like before code freeze since they have huge changes (and implications for proxies), please don't let this hook thing stay in the way of them getting reviewed or upstreamed.