A "Free Feature" is one that seems to fall out of an existing design with "little or no effort".
"little" and "no" are relative terms. SOME effort is required at the coding stage to enable (or disable) every feature that seems to fall out of an existing design.
For every "little" effort on the part of a programmer there is "little * little where little > 1.0" effort required by the documentation team, commonly referred to as the "little by little" phenomena. [Note: Since we have "> 1.0" multiplying does NOT decrease the effort.]
For every "little by little" effort by the documentation team, there is "little by little by little" effort required by the testing team. They not only have to test the code they have to verify the code matches the documentation.
For every "little by little by little" effort by the documentation and testing teams there is "little by little by little by little" effort required by the sales team to understand for themselves the feature and to explain to the value of the feature to the customer. Unless this is a driving feature/benefit, we should not muddy the waters for the customer.
So ... having said all the above ... you as the coder are the font line on making the decision ...
Of course .. all this assumes you recognize a feature as free ... but that is left for another tidbit.