Why does fine CFO cause rotation of the constellation?
CFO is modeled like this $x(t) = s(t) e^{j2\pi f_{\text{CFO}}t} $. This is a phase rotation only and does not effect the magnitude. Convince yourself of it by breaking $e^{j2\pi f_{\text{CFO}}t}$ up as it magnitude ($= 1$) and its phase ($=2\pi f_{\text{CFO}}$). This is all happening in the time domain. If you plot the CFO-free signal and the CFO-corrupted signal magnitude over the top of each other, you should see little to no difference.
This is different from plotting the CFO-free spectrum and the CFO-corrupted spectrum. From the Fourier properties, multiplying by a complex exponential in time will result in a shift in frequency, so the CFO-corrupted spectrum will be shifted by $f_{\text{CFO}}$.
Edit
After seeing the comments, I think I understand the confusion better now. I'm using the term &quot;sampling&quot; to refer to taking a continuous time signal and sampling it. In a receiver, you do it at the symbol period to get a nice clean constellation back.
From what I can tell, the OP uses sampling to mean something else (not wrong just something else). In OFDM, the receiver does a FFT, which is also sampling but in frequency. The CFO introduces a shift in frequency so when the receiver goes to do the FFT, it is going to sample at points where you are getting a component from the main subcarrier and also other subcarriers (ICI).
To answer the question, CFO does not effect the magnitude of the signal (only the phase) and it does effect the magnitude of the spectrum at the subcarrier sampling points.