If the Fourier Transform is "comparing how similar" each frequency is to the signal, then why doesn't the beating frequency show up? It's clear to see that the signal has an oscillatory term at the beating frequency (specifically the envelope). Someone told me that the beating frequency and the sum frequency both show up in the Fourier Transform if the signal is caused by something nonlinear. Why is this? Why does the Difference Frequency and Sum Frequency only show up in the FT if the signal is caused by something nonlinear?
Just "looking similar" isn't good enough. To calculate Fourier coefficients, you have to actually compute the overlap between a sinusoid and your signal.
The envelope of a beating signal looks like a low-frequency sinusoid. But the overlap of this signal with a low-frequency sinusoid is zero, because the rapid oscillations make the overlap cancel out.
The beat frequency and the average tone are present in the time domain. The FT is a filter that matches how much of a given single sine (or cosine) with a well defined frequency is present in the input function. One way to think of this is that the single frequency sine and cosine functions (sin(2*pift), etc) form a basis for a function space. The amplitude modulation caused by a difference tone (i.e. beat frequency) is caused by the presence of two coherent sine waves. The FT picks up each of the coherent sines, the beat is simply not present in the spectrum. A lot of people have trouble with this. The sum tone (average frequency) is also not present in the spectrum.
If you were to put a generic envelope function over a sine wave the FT would necessarily pick up the spectrum of the envelop too. The classic case in point is a square envelop, which produces a sinc function in the f-domain.
As for non-linear function? You need to be more explicit with this term. An FT is nothing more than a projection onto a function basis. It isn't smart enough to know how the function got made. To this point a few things can be said.
(1) If a non-linear process generated a sub harmonic out of two frequencies (or in this case the beat frequency) then that frequency is truly in the spectrum. That is to say you would have a1*sin(w1*t) + a2*sin(w2*t) + a3*sin((w2-w2)*t). I cannot imagine what process would do this but the point is that this is NOT the same thing as a1*sin(w1*t) + a2*sin(w2*t), which has a beat envelope. I would encourage you to plot examples of these in MATLAB or some other s/w and see that they are not the same.
(2) The FT is a linear filter. If by non-linear you mean a non-linear filter like wavelet decomposition then you are not comparing the original input to the same basis set. I do not think this is what you mean in your comment but thought it worth mentioning.
(3) If you are simply saying that when you put in x^n, a parabola, you get more that one or two frequencies, then... well, of course. This is nothing like a sine wave and probably has a messy spectrum. There is no particular "frequency" associated with a power basis (the basis used for Taylor expansion of a function).
(4) If a non-linear process was used to make an input consisting of the sum of two coherent sine waves (which has a beat and sum frequency in the time-domain) than the FT will operate just the same. As I stated it cannot tell how a function was made, only what it contains.