Ok, as an engineer I thought I would come in on this thread and hopefully shed some light on the situation. Li batteries are gauged using a small IC, typically over I2C, that uses a small current sense resistor and also keeps track of temperature. As the battery discharges, the IC tracks this and matches it to a curve that it stores in memory on the IC. The curve that the IC comes with is likely preprogramed by the manufacturer to match the typical curve of the battery in question. Once in use the IC can change the curve based on the discharge and recharge that the phone goes through. The percentage of battery power left is only as accurate as this charge curve in this IC's EEPROM. The temperature is also used to tweak this, so if the phone is in the heat, the power left should be lower.
As such, the best way to get a more accurate reading on the battery is for the user to fully discharge the battery, or at least get close, to allow the IC to time the curve and get the most accurate measure. Once this has been done, and doing this S couple of times will increase the accuracy, you should see better battery life.
Keep in mind some of the myths about battery charging should be ignored. 1) The battery IC will indicate the battery is at 0%, when properly calibrated, at something closer to 40-60% (essentially when the cell is down to 2.5V). 2) You can't overcharge your battery. The IC charge circuitry will slow charging to a trickle at around 98-99% and then charge into the 100% charge area until the current no longer drops, then it will cut off charging completely until the percentage drops enough it the charging cable is unplugged and plugged back in. Z this is why I leave my phone on the charger overnight and have never suffered from premature battery aging. The battery also isn't charged to 100% of its capacity, as the circuitry tries to keep the phone in the golden zone to maximize battery life.
Hope this helps.