Do I have to do this type of calibration every time I flash an update in CM or another kernel [...]
In an effort to stop the off-topic questions, No.
You need to calibrate when your battery life is exceptionally short, or when the phone shuts down well before 0%. If it is exceptionally short, it may simply be worn out, but one way to check is to rejuvenate it with a calibration run. If it still runs short, you should know from the log. Look at the stored mAh just before it jumps to 100%. That should tell you what the capacity is now.
The basic rule of thumb is that it should be showing about 3.5v when it's about to go into a death-dive and die in the next half-hour or so. At 3.7v (3700mV) it should be at about 30-40% remaining (about 400-450mAh).
The goal of calibration is to have the battery read "0mAh" at 3201mV at the same time. Preferably 3416, since the run time between 3201 and 3416 is measurable in minutes, but the lower you run the battery, the more you wear it.
You need a kernel with the right driver (such as CM6.1 and above, or ManU of course) in order to run the app, along with good reflexes.
Generally speaking, the battery loses 0.78% capacity every month or so of use. If you haven't run a calibration in the last six months, it's probably overdue.
If you let the battery run dead flat, it will reset the "age" to 94% when you next charge it - charging the phone while off does this. It's annoying. You then have to wait until it's ready to boot, and use the app to reset the age to 100, 96 or whatever your KNOWN age actually is. In my case, that's 88% and 91%. But since my phone is a *&^*(&^, doing so actually reduces the maximum charge because calibration doesn't work properly; it only seems to save half the data. So I have to simply remember that the age should be 100% but that "Flat - 0% charge" is actually around 10% on the battery scale.
The ManU kernel can't be at fault here, because it uses the same mechanisms to read and write the various other values from the battery driver. That, and CM7.x doesn't work,
in exactly the same way. Since many others' phones calibrate fine, it must be my hardware that is at fault.
You do NOT need to run a calibration except when the capacity is wildly wrong or the phone shuts down before reaching 15% or if the "3700mV" level is wildly different from 400mAh remaining.
This is NOT "battery stats" from recovery (which correlates the battery voltage and remaining mAh) but a function of the chip in the battery - the two are unrelated mechanisms. This procedure calibrates the "zero point" and the "100%" point of the battery based on current flow and voltage as it charges.
It is probably wise to reset the battery stats as well when you've done a successful calibration - but it doesn't MATTER. It'll be the same thing as swapping to a different battery - the OS battery scale may read slightly off what the calibration app reads for a while, but it will adjust after a few charge/discharge cycles. Clearing "battery stats" in recovery will simply speed up this process. Calibration configures the FIRST ORDER estimation of battery charge. "Battery stats" (OS concept, what's in the notification bar) is a SECOND ORDER estimation based on the first.
For any further information, see the thread above. Also any further questions should go there.
We now return you to our regularly scheduled programming