The two approaches you mention are not as separated as they seem. Both kinematic models and dynamic models are not 100% accurate. This is the reason closed loop control is needed (well probably only one of the reasons if you ask controls experts).
You should not think of kinematic and dynamic models of being completely separated. They are all models describing the same system. Kinematic models include only motions, not forces, dynamic models include both, forces and motion. They all have their role in a control system.
You are right, dynamics modelling is more challenging because it is harder to come up with exact dynamic models. But this does not mean that the dynamic models are unusable.
Most industrial motor control applications for motion planning use a cascaded control approach with an outer loop for position control (which is usually disabled for mobile robots) a "middle loop" for velocity control and an inner loop for torque control. All of these loops have a PID controller variant (mostly P and PI, PD or PID also possible) and have a feed forward input. This feed forward input is the easiest way to integrate inexact dynamic models.
Consider the case where there is not feed forward signal on the torque controller. This means that the control loop has to minimize the difference between the reference torque (generated by the outer velocity loop) and the currently applied torque. This assumes that the reference torque, generated by the velocity control loop (since it is a cascaded control system) is exactly the right amount of torque needed. Obviously it is not, but the we "hope" that the velocity feedback will take care of this. And it can, but with limited performance. It takes some time for the controllers to settle on just the right amount of torque.
To increase the performance of the control loop we can add a feed forward signal to "help" the controller. We "inject" an additional torque which we think is the right amount. Obviously this will also not be the right amount, but if it would be, the control loops would have "nothing to do" they would behave as pass through. Since we would have an exact model of the system we would not need a controller we could always calculate the right amount of torque. This works well in simulation when the controller plant is exactly known, but (almost) never works in real life.
If we use an inexact dynamic model to inject a feed forward torque, even if it is not exactly the right amount it helps the controller. A simplistic explanation is that the controller does not have to come up with the exact amount of torque needed, but it only needs to correct the feed forward torque.The more precise the dynamic model giving the feed forward signal to the controller is the more it "helps" the controller, the faster the controller settles on the right value. The closer we are to a perfect model the less we need the controller.
A more complex way to use dynamic models, even if they are not precise is model based control. This is well established in academia, but less widely used in the industrial practice.