When you update the Motion of a flying Arrow with /data, it does only update serverside.
To reproduce, you can use the following commands:
/summon arrow ~ ~2 ~ {NoGravity:1b}
/data merge entity @e[type=arrow,limit=1,sort=nearest] {Motion:[0d,0d,-0.5d]}
You should see, that the arrow ow "jumps" every so often to its new sever-side position but still facing the direction it was facing when it was summoned.
Linked issues
is duplicated by
Comments

fixed somewhere between 1.14 and 20w06a

1.15.2 also isn't affected by this.

This still happens in the latest version, 1.21.2 Pre-Release 5:
How I encountered it: changing an arrow's motion with the tick function as soon as I shot it. It will only update when the arrow lands. Not fixed.
Suspected solution: just update the client on the arrow's motion when it is changed by a command.
Since in the recent 1.10 Snapshot there is NoGravity for all Entities, you can see the effect for an Arrow with NoGravity very clearly.
Just do: