Rigidbody character and Update() function

So in official Unity’s 2D Character Controllers tutorial ( http://unity3d.com/learn/tutorials/modules/beginner/2d/2d-controllers ) they made their character out of a physics2D rigidbody. That’s kind of cool, but if they want to move this character, they must do it in an FixedUpdate() function (since it’s a rigidbody).

But what about the DeltaTime stuff? The movement can now get ahead or behind the frame rate, right? Can’t this be fixed?
Does it mean that you can either have a smooth game, or a physics-based game, but not both?

In FixedUpdate you use Time.fixedDeltaTime instead of Time.deltaTime.