The answer depends on the kinematics model in use. In Marlin there are at least:
Classic jerk
The "jerk", in units of mm/s not the expected mm/s³, is actually a "maximum instantaneous change" in velocity. Without any jerk (set to 0), your analysis would be correct, and all changes in direction would require slowing down to 0 velocity. However, with jerk, it's only necessary to slow down enough to make the necessary instantaneous change in velocity components less than the jerk limit. For a very slight change in direction (e.g. going around a curve approximated by line segments) this amounts to no slowdown at all. However, in this naive model, arbitrarily many bounded instantaneous velocity changes can happen in an arbitrarily small amount of time, essentially requiring unbounded acceleration capability and leading to missed steps/layer shifts.
Junction deviation
At each junction between segments where direction changes, the acceleration profile is executed as if the motion were cutting the corner in an arc, deviating from the exact corner by a distance of the configured junction deviation parameter. The actual step path still follows the sharp corner.
Others
I'm not really familiar with S-curve acceleration, but as I understand it it's a more advanced model fitting smooth curves to the travel path so that velocity can vary continuously, with bounded acceleration, rather than having jump discontinuities.
Klipper firmware also has a model very close to junction deviation, which its documentation explains clearly.