Generalization is also usually better for smooth functions. For classification problems, you want the class boundaries to be smooth. But if your software does not provide a sufficient variety of error functions, then you may need to transform the target so that the noise distribution conforms to whatever error function you are using. Note that what is important is the distribution of the noise, not the distribution of the target values. The distribution of inputs may suggest transformations, but this is by far the least important consideration among those listed here.
Arctan usually works better than tanh, which squashes the extreme values too much.