Я думаю, что устройство всегда разряжает батарею, чтобы гарантировать плавную кривую мощности, то есть батарея работает как своего рода буфер. (Это также упрощает аппаратное обеспечение.) Однако, когда оно подключено, система питания непрерывно заряжает аккумулятор, поэтому общий заряд аккумулятора никогда не меняется.
Я не думаю, что это имеет какое-либо отношение к программированию. Обычно вам нужно знать, подключено ли устройство, если вы делаете что-то, что может занять больше времени, чем батарея. В этом случае, откуда питание подключено, действительно не имеет значения.