It already is frame rate independent (there can be x updates between two frames being drawn).
The simple reason for this is (at least for me): It makes updating and simulation a lot easier to do. E.g. instead of moving some entity by "speed * deltaTime" and then testing every x units to see if it collides, you just move it by"speed" every iteration. In the end it's essentially the same approach, but you're forcing a fixed number of updates per second, which can be a lot more beneficial, especially if you're trying to do networking and/or some kind of demo recording.