I would be tempted to greatly simplify to vvf (of course), a full implementation of dvdvdf, and all the others in terms of that.  For example,

void osl_##name##_dvvdf (void *r_, void *a_, void *b_)
{
    Dual2<Vec3> a (...a_...);
    osl_##name##_dvdvdf (r_, &a, b_);
}

because that's all they're really doing anyway, and this eliminates a lot of redundant code.