I’ll try… let’s go through the body types.
"static" - This body is placed once and assumed to never move. So moving it is a bad idea. It may work, but I wouldn’t rely on the physics body moving with the visible part (the display object).
"kinematic" - As you noted, these bodies can move at a fixed velocity, but they do not respond to forces nor do they exhibit a collision response. That is objects colliding with them do not have any impact on the kinematic object’s body motion.
Additionally, although it is generally frowned upon (although sometimes it is the only solution), you can move the display object by changing the x and y values.
The reason setting x,y is frowned upon is because it moves the display object only. The physics engine must detect this and adjust. It isn’t the same as the body being moved by the physics system.
By default, physics bodies are allowed to sleep. This reduces the processing load of the physics engine.
If the body falls asleep and you manually update the display object position, the body may be stuck in the old position.
When you know you may be manually adjusting the position of kinematic bodied display object, you should set obj.isSleepingAllowed = false. i.e. Don’t go to sleep.
Warning: DO NOT do this on all objects or your performance may tank.
"dynamic" - This is the most common body type. However because they respond to forces and exhibit collision responses, they are not suitable for things like pong paddles, etc. i.e. Objects that you wish to have NOT move on collision simply cannot be dynamic.