I believe that linking a label to a form element allows you to assign the label
an access key, which will bring the focus to the form element associated with it.
As others have mentioned it also allows you to click on the label
and bring focus to the form element.
The for attribute alllows you to place the label
and the element in semantically different areas of the html, and maintain association. (Like two tables, or two different divs). If you're putting both of them together like in your example, it is also correct to enclose the form element in the label and forgo the for
attribute