I have no idea how iPhone’s processor scheduler works. However, if it is like many modern OS, scheduler slices out CPU time according to priority. If that is the case, there are two reasons why iPhone’s background processing won’t drain battery too much.
The first is that the scheduler is merely taking cpu time out of foreground process. It does not make CPU go faster. It does not create any processor time. It takes a small slice out of foreground processor. How is this draining battery?
The second is that the modern OS spends most of time on CPU idle. This is truly the case when foreground processing is light. Unless you are doing a game, your iPhone spends most of time waiting for something to happen. This idle time can be used on background processing! This is how most modern OS is done. When it senses foreground program needing more CPU time, it yields.
Third is that modern OS is event driven. No more polling of anything. This means, background processor merely waits for an event to occur and it reacts to it. The task of handling events is entirely on OS. OS handles event routing. Once events are passed to background event handler, background processor starts to process each events. So, since there is no more polling, how can Apple make it sound as if each background process is constantly polling? I am sure there are cases where radio signals are handled differently. But, I cannot believe that modern OS relies on polling.
Yes, more background programs you run, sluggish the foreground program becomes. That’s a well known fact. You comment out the daemons from starting; you stop services from starting in Windows.
Maybe, Apple cannot just give in that easily, out of principal.