You are absolutely correct. By far the best for heat transfer is metal-to-metal contact between the CPU die cover and the heatsink. But in mass manufacturing the surfaces have imperfections and so the two don't match up perfectly. Thermal Interface Material (TIM) is used to fill the microscopic air gaps between the two surfaces. A widespread misconception is that the TIM is better at heat thermal transfer. This leads to the even more widespread mistake of using too much TIM. The optimal way is to have the TIM fill only the microscopic air gaps where the metal-metal surfaces do not make perfect contact.
Edit: Oh, I see Paul answered this already.
My previous cpu & hs were lapped, the thermal paste was spread very thinly with a credit card and the results were very good.