AddMovementInput vs Set Velocity

Have a few questions about AddMovementInput

I find it more natural to work with movement in terms of vector math, manipulating position, velocity, and acceleration. I replaced the AddMovementInput node in the side scroller example with some vector math nodes to get the current velocity, add to it’s y component, and then set the new velocity.

This works as expected, except that my character no longer rotates towards the direction of movement, setting velocity in this way seems to have broken the “orient rotation to movement” option set in the character movement component.

In light of this, i have a few questions:

  1. Is this an ill-concieved way to work with character movement?
  2. am i also breaking other things i have not noticed yet by setting velocity this way?
  3. what precisely does AddMovementInput do under the hood ? (as much detail as possible please)
  4. what is the best way to work directly with position, velocity and acceleration for characters (and actors if different methodologies are required)