As Sam mentioned, the problem with using the velocity to determine the rotation is that, when going in reverse, the algorithm has no way to know that we are reversing and the car would always point towards the movement direction.
But I think it’s worth pointing that the same applies for the position and derivative/velocity as well. If the StartVelocity is forward and the TargetVelocity is backward (or vice-versa), the curve will be incorrect. It will be smooth, when in reality there should be a singular point when the direction changes:
In blue is the path followed by the controller car.
In red is the path followed by the interpolation.
One arrow is “forward”, the other is “reverse” (doesn’t matter which)
In practice, it’s unlikely to be an issue since, to be noticeable, it would require quick changes of speed and slow network updates, which shouldn’t be a common combination. With slow speed changes and/or fast network updates, the speed at one or both endpoints is going to be near 0 anyway so there wouldn’t be much of a singular point.
But still, I think it’s worth keeping the possibility in mind.