The current code in shadow_ray_smooth_surface_offset() systematically transforms the normal from local to world space. This defines the offset direction of the shadow ray starting position. Most of the time, I believe the normals and other geometric quantities are already in world space: wrapping the transformation with a test on sd->object_flag & SD_OBJECT_TRANSFORM_APPLIED seems more correct to me.
Debugging this with a any simple scene of a rotated cube will do, I'm attaching one just in case.