No. With lithium polymer technology you have more mAh in the first 50% than you have in the second 50% due to voltage drop as the battery discharges, and the fact that you cannot discharge it much below 3.5vpc without risking damage to the battery, meaning some of the battery's capacity must remain unused.
Watt-hours of usable capacity always remains the same, despite voltage. With the battery fully charged at a specific watts output, the voltage will be higher the amps lower. As the battery discharges amps will be higher voltage lower. If a battery has a specific energy capacity of 100 watt-hours, at 50% of the watt-hours used, you have 50 watt-hours left. Every time.
It is very simple to calculate. Simply measure the power required to hover or fly your aircraft with a good-quality RC power meter. With the batteries fully charged, hover or fly it to fully discharged (low battery cutout so battery is no lower than 3.5vpc at rest after recovery). The watts times the time is the watt-hour capacity of the battery pack.
Now, when you fly, if you have 200 watt-hours capacity and have used 100 watt-hours of it, you are exactly at 50% fuel left, where using mAh will show more than 50% left. Like Matt said, the current sensors used on the ArduPilot system are not very good, or very accurate. And that's why I don't use them and use measured capacity and consumption over time instead, with a timer. I fly piston helicopters as well, and the same methodology is applied to fuel left in the tank, and remaining flight time, with a piston engine. In all aircraft, fuel burns by the clock, not by the gauges.
I've been working with a friend who does coding to test various things for helicopters, and it would be trivial to convert ArduCopter's system of using mAh to watt-hours, and enter measured values into params for power and capacity. But due to the inaccuracy of the current sensor and a decent power meter not being available, it wouldn't be worth it. A simple timer, after actually measuring my aircraft's performance and fuel capacity, has worked fine for me over hundreds of flights, with both piston and electric, without using ArduCopter's battery failsafe at all.
For many folks, ArduCopter's system of using mAh is "good enough". For me, it's not and I certainly do not trust it to engage any sort of "failsafe" with the quality of the sensors currently available or being used in the system. I do not even trust the shunt and little board to handle the 3-5kW that a big helicopter can draw at full power and collective pitch running on 12S power. I feel the system was designed for smaller drones that do not draw much over 20% of the shunt's maximum current rating, and even the higher-rated boards are not that great.
This thread caught my eye because I have had the thought of coding a warning timer into the ArduCopter system for flight time that works with both piston and electric helicopters, using measured values to do the calculations. And while it would never make it into the mainstream code, I can run it in my own custom branch for helicopters.