in them olden days you could work your way up from 400 grid thru 600, 800, 1200, 2000 upto microfibre + toothpaste, silk + toothpaste ...-and.lots and lots of elbow grease---- on BOTH the CPU ihs and the bottom of the HS/block you could get them both so flat that they stuck together by natural adhesion. In extreme cases you could lift the 1lbs HS/Block up by the CPU.
Nowadays, bow is a bit more of an issue , and it doesn't help that bow requirements for IB & 2011 are different from SB & 1155... but it CAN be mitigated by using a slightly thicker bottom/coldplate and not putting insane pressure on the mounting system
For GPUs lapping is indeed in most cases difficult.
It can be done by riggin up "inverted sanding blocks" , basically blocks of granite of the right dimensions.. But it's only worth it if using an universal GPU block. Its almost impossible to achive for full cover blocks because height differences between GPU, vrm, ram,... (thats why most FCs use thermal pads).
Some FC blocks are better as others... and they can do away with pads and just use minimum paste, because they have closer tolerances..... which is most noticable in your wallet, btw
Of course, if you have some money to burn, you can have your GPU card 3D measured and then have Silver full-cover block milled which fits that specific card perfectly