Differences between object movement functions

So I was trying to understand the differences between different ways to move an object in Unity and got opposite answers in different places. Here is what I was able to figure out though. I would ask you to check and correct me if I am wrong at any of them:

  • transform.Translate has nothing to do with the physics. It simply teleports the object from point A to point B.
  • MovePosition for kinematic bodies slides (instead of teleporting) the object from point A to B + interpolates the object position in the frames to be rendered in-between FixedUpdate calls.
  • MovePosition for non-kinematic bodies ( aka dynamic ) teleports them from point A to point B.

AFAIK, all of them ‘teleport’ the object, the only real difference between MovePosition and transform.Translate is that MovePosition takes Physics into account before the movement.
So it shouldn’t clip into things as much as transform.Translate (even if its kinematic, if the body that it is colliding with is a dynamic rigidbody it will work out the physics for that body before the kinematic body is moved, this is why it appears to ‘slide’)