[boost] [proto] design rationale for expr<proto::function, argsN<Fun, Args...> >?