Ray differentials are just two extra rays one pixel up and right of the main ray to give the ray width. It's pretty trivial to keep them up to date with the main ray at surface intersections (it's technically more work, sure), but it's doable, so I don't see a problem with it.
BDPT is more concerned with the surface area of meshes and solid angles of hits, so that the light path vertex weightings can be accurate.
BDPT is more concerned with the surface area of meshes and solid angles of hits, so that the light path vertex weightings can be accurate.