It's complicated! I only worked out exactly what was going on recently.
There are three stages of controllable amplification in the dongle: the LNA, the mixer, and the IF VGA - that amplify the signal, in that order.
When you set manual gain, that sets the LNA and mixer gain to max, and sets the IF gain to a fixed value.
When you ask for AGC, that puts the LNA and mixer gain under the control of the AGC, and sets the IF gain to a different - higher - fixed value compared to what you get with manual gain. Then the AGC ramps all the gain
that it controls - that is, the LNA and mixer - up to maximum because it doesn't deal with ADS-B signals very well.
So in both cases, the LNA/mixer gain settings end up the same. But because the IF gain is set differently in the two cases, the
total gain that you get when you ask for AGC is slightly higher than what you get when you ask for max manual gain.
Really, librlsdr should be smarter about how it sets the IF gain, and let you increase it if you need to. I have some work along those lines to merge.. but a project for another day