Agree completely with what navxraxe has posted.
The battery in a Pixel 7 Pro, and a Pixel 8 Pro, which both I have run rooted with locked bootloader for a while (therefore maintaining verified boot, and having the bootloader locked making it so no partitions can be flashed to bypass lockscreen, the only half-sensible way to root), however since compiling GrapheneOS with my own keys I find it much better to flash root onto my phone, use backup apps, then flash an OTA update to remove root, therefore getting the best of both worlds. The only thing I miss, is ACCA, and it's daemon AAC. I'm still trying to get a way to make it run without root permissions, and control it through Termux...
With ACC, called Advanced Charging Controller, you can set the battery % to shut down your phone, and the battery % to stop charging, as well as a bypass to run your phone off power and disconnect your battery from the charger's power path once you reach that %. You can also set a Max mW/s control to control how fast your phone charges in each profile, and a Max Voltage setting (between 4100 and 4300mW) to stop charging at instead if a %.
You can also set a "run script on plug" and "run on boot" settings, that can, for example, be used to force enable fast wireless charging on things other than the Pixel Stand, or enable faster charging via USB corded charging. Also, you can set a Job Scheduler daemon, that will select a profile on boot or on certain time of day, so a different profile can be on all night, slow charging to 60%, then half hour before you get up, it could switch to fast charging to 4.25V, or 80%, both of those are about the same...
The battery in the Pixel is a Lithium Ion High Voltage battery. Others have posted the relevant links to Battery University above, and I have noticed in other devices the downwards trend of batteries to loose capacity when plugged in and at 100% all the time. The internal charge controller is for preventing accidental catastrophic reactions from overcharging, not for giving you more cycles than the design was intended! Also, The internal battery is rated for 500 cycles only! "Wait," you ask, "what if I want to keep my shinny new Pixel 8 Pro for the full 7 years that the support runs for, and I'd rather not replace the battery, 500 cycles doesn't seem like enough, that isn't even two years!!"
Well, your right. My nice, 2 year old Thinkpad X1 Extreme Gen 4, was never used unplugged by it's last owner. Plugged in at home, plugged in at the office. All the time! Guess where it's battery capacity is now? Under 80%! However, my just-sold Pixel 7 Pro I upgraded from, which I ran rooted with locked bootloader for most of UT's time with me, (total almost a year) lost 40 mW of capacity according to analysis while charging! Still had 4960mW out of 5000! I used ACC on it since I first rooted it!
Not everyone has to use such a feature, however I really love how as time goes on, the devs of GrapheneOS are making it so there really isn't as much of a need to root. The recent upgrade to Seedvault is one example. It's D-D backups are just as good, sometimes better than the best root solution out there! Yeah it's not perfect, yes it only looks at and backs up data for recently used apps, and you may need to run it a few times, or disable an app if it is crashing in the background when you get a "backup failed" message, but it does make it so you have the equivalent of a root backup solution, with all the security of a non-rooted GrapheneOS! All we need now are 2 things:
Adblock and tracker blocking! I use this list with 1.5 million lines, it makes the resulting Hosts file @ /system/etc/hosts 56MB in size, when I used to use Adaway to make a larger hosts file. However, without a Magisk Module, /system is not writable because it has 0 bytes of space available. Or at least copy the one that DivestOS uses, since this is ONE thing that they have and GrapheneOS does not!
Secondly, the charging control. It would be a kernel module, or be part of the kernel somehow. I'm sure it is possible, and a belief on the part of the devs (thanks again for all your awesome work!!) Shouldn't be a barrier to them implementing it... If enough people want it, and there's some evidence that it will be useful (as there is), then why not? I know that these batteries are rated for a certain amount of charge cycles, a standard Lion battery in a cell phone is 500. Manufacturers have no reason to raise that, it is another reason to upgrade your device if the battery is not lasting as long! Fits in with this disposable world we live in... I for one would like to keep my perfectly good device around a long time, or when I do sell it, pass it on with a battery in as good of condition is possible!
The Pixel phone runs at too high of a voltage. High voltage will kill a battery quicker. Draining to 0% will do the same. It isn't the full 0% or it would never be chargeable again, and it isn't the full 100% or it would be at risk of catching fire, that's what the charge controller and the engineers who out this all together are concerned with! A battery what will last the specified number if charge cycles, and won't break and not take a charge, or be a safety concern. If however you want your battery to be good for 5X those cycles, so 2500, then charge to 80% and don't go below 20%. That us also not 2500 cycles of the 60% in between 20 and 80, that is 2500 full cycles of 0-100%!
So I think it is clear, this feature is a great one to get! However they are probably also working on more important stuff relating to the core mission of GrapheneOS; security. Perhaps that will take this on later!