Android and iOS don't carry nearly as much "baggage" as Windows does. The systems on which those mobile OS's are build, do.
Operating systems such as Linux and BSD have networking ingrained into them. Pre-Vista Windows versions actually used the BSD implementation to do networking.
Building on a base that has networking down means that this system is build around different design principles. You will still find 20-year old code in the most current versions of Windows (after all, backwards compatibility). Design choices that were made in the beginning of Windows are most probably biting the Windows Phone OS in the rear-end now.
As I own a Lumia 520 I concur with anyone about noticing a huge difference in battery life when WiFi is enabled or not. WiFi = off > close to 36 hours on a charge. When it is on, barely 24 hours. What most people forget is how much energy is spent on finding a WiFi network. If you commute and cross between a lot of dead spots or areas with a lot of (protected) WiFi networks, your phone will spent a lot of extra energy trying to find and/or connect to WiFi networks.The same applies to connecting to a 2G/3G/4G network.
Design choices in a mature software product made in a period where computers were mostly stationary will bite in the current mobile trend. But that is 20/20 hindsight for you.
All I want to say is that most people don't see that a simple (and logically sound) request can have a huge impact on a code base. Making any drastic change in a mature code base, without sacrificing (too much) backwards compatibility? Don't expect it coming soon...