You have a point that when the clickable area is large enough for text fields, expanding the click area by including the label is no longer relevant. But you should consider the following:
This is for consistency. All form fields behave the same keeping interaction predictable.
This is an accessibilty concern. You need to associate the label with the input somehow and what is a better way than the default:
<label for="inputx">Label for X</label>
<input id="inputx" name="X">
or
<label>Label for X <input id="inputx" name="X"></label>
This will make the label clickable, that is what browsers do by default. Otherwise you will have to use aria attributes (and hide the label for screen readers otherwise it will be redundant):
<label aria-hidden="true">Label for X</label>
<input id="inputx" name="X" aria-label="Label for X">
or
<label id="labelx" aria-hidden="true">Label for X</label>
<input id="inputx" name="X" aria-labelledby="labelx">
I'm not even sure how well this works for all screen readers while the default behavior works in any case. So keeping the label clickable for all fields, including text fields and textarea's is the easiest to implement and keeps things consistent and predictable for the sake of usability.