Yes you are correct, when in airplane mode, it kills all connections. This does not stop you though from manually turning on wifi after that…which I do.
That way I know, for sure, I wont get any sneaky phone data charges from my carrier and I can still use the internet.
My guess is in the code, its just doing a simple check for is airplane mode active. If so, alert user that there is no internet and stop execution. Which of course isnt exactly right. It should be checking for any active connection regardless if airplane mode is on or not. You can still have wifi on or bluetooth working when in airplane mode.
I’m sure that previously when I turned on Wifi while in airplane mode it prompted to leave airplane mode, but I’ve just tried it now and it kept airplane mode enabled, but also enabled the Wifi, at which point web browsing worked.
I suspect you’re right about the simple “if airplane mode” check.