accelerations map directly to actions of the user (forces). It seems fairly natural, not strange, to control velocities and positions in terms of accelerations. The same thing happens in real life.
To get a true speed limit you would compute the new velocity vector, compute its magnitude and rescale the components by the ratio under the limit. Which is slightly more computationally expensive I suppose.