I went back a second time to the Genius Bar at my local Apple store for a follow-up about our problem. The previous week I'd talked with someone from the Genius Bar about it and he'd suggested that it might be caused by my not having enough free space on my iPad. I'd gone home and freed up more space and that had no effect, so I decided to go in for a follow-up. This time they assigned me the lead technician. He spent quite some time with me and I'm going to write up my memory of what he said.
He said it's "working as designed" (how many times have we all heard that?) which was pretty distressing to hear. He says the problem did not crop up with iOS 7 and he's seen it before, though he admit that it's aggravated by the increased memory demands of iOS 7. However, he did suggest a different way of looking at the issue which I hadn't considered before, and I'll describe that. But after checking out his suggestions (see below) I don't think his analysis was correct.
He said that it's related to the Background App Refresh (BAR) setting in Settings. I told him that when I first started noticing the problem two months ago I investigated this possibility but then ruled it out. I reasoned that I don't want an app to refresh itself while it's in the background. If it did refresh itself, then when I'd switch back to it and it was brought back to the foreground, that refresh might actually CAUSE the problem we're seeing. So since then I've had BAR turned off completely.
In response, however, he described our problem and its relationship to Background App Refresh in a way that surprised me. He said that you DO want to turn on Background App Refresh for the apps that you'll be switching back to, because in multi-tasking (or, rather, the pseudo-multitasking that we have on our Apple mobile devices) one of the things that BAR does is to "protect" the original state of the app. This is the first time I'd heard the idea of Background App Refresh protecting and saving the original state of the app. So if you have BAR turned on for that app, then when you switch back to the app it will get restored to how it was at the time when you switched away from it -- which is what we want and what we remember fondly from iOS 6.
However, his explanation didn't seem right. I said that if that was the case, then app "refresh" was certainly a bad term for this. He agreed that it was a bad term. But he responded that a good way to think about it was that turning on BAR for an app "refreshes" THE APP'S ORIGINAL STATE. It puts up a shield around the app's memory space when it's loaded, so it says to the OS: "don't mess with me, I'm holding on to what I had before, the original state. You can't borrow any memory from me even if you need it."
He said that the problem we're noticing will NOT exist for apps that have had BAR turned on in Settings. This surprised me but he insisted that for any app that restarts/refreshes itself when you switch back to it, if it's not in the app list in BAR then the developers need to put in special code to deal with BAR. Once the app would be upgraded in that way, if you would turn on BAR for that app it would then not exhibit the behavior we've been seeing.
I was surprised to hear all this and mentioned that almost all the apps I use have already been upgraded for iOS 7. He said that was true but that many of those allegedly upgraded apps have still not incorporated code for BAR. Once they did, and would issue a new release, then the app wouldn't display the behavior we're seeing.
I wanted to believe him but was skeptical, especially given that three of the apps that get refreshed unnecessarily when switching back to them -- Safari, Photos and Settings -- are all stock Apple apps. Why didn't they have BAR code built in to them? He wasn't sure.
I thanked him and went home. I turned on my iPad and went into Settings and turned on the option for Background App Refresh, as I'd previously had it off. Then to test his theory I turned it on specifically for a few of the apps that I use at least occasionally and that do have an entry in BAR: NY Times, Organic Gardening, New Yorker and the stock Podcasts app.
For the next hour or so I tested each of these. I opened up a specific item in the app such as an article or a podcast, then switched away from it. I then worked elsewhere for ten minutes or so, then switched back to the app. For the NY Times, the reset closed the article completely and returned to the main page -- just as I'd feared. For Organic Gardening, switching back to the app did the same thing: closed the article and returned to the main page. For the New Yorker, switching back caused the app to go blank momentarily, then it returned to the article but to the beginning of the article and I lost my place. For the Podcasts app, switching back caused a reset which closed the podcast I was looking at and it went back to the main page.
So the problem is exactly the same even for apps that have Background App Refresh turned on. I therefore have to conclude that the analysis given to me by the technician was incorrect. I believe that his suggestion that the problem will be solved when individual app developers upgrade their app to deal with Background App Refresh was not accurate.