I think there is a bug in the way that mavros transforms odometry data from a vision system body frame to drone center.
Specifically, if there is a translation between vision system body frame (for example camera in a visual odometry system) and drone center (base_link), from rigid body dynamics we know (please see section 5.1.3 in this link) that linear velocity of base_link will be dependent on angular velocity of the camera frame. Looking at this line in mavros source code, I am not clear how this calculation could be possibly accurate without any references to odometry angular velocity.
Would someone please clarify?
I have also opened a related ticket in PX4-user_guide.