I wish wifi version had GPS
I think the reason why it doesn't is that Apple use a combined GPS/cellular baseband chip.
Well what you are requesting goes a lot deeper... Apple still limits the APIs for developers to do things system-wide/outside the native apps. It's a strategic decision from the early days of iOS devices to not allow apps to hog up resources and thereby compromise Apple's intended experience. Android and it's hardware was continually bashed in the early days because of unresponsiveness/lag due to the platform being more open and not quite as optimized.
It has little to do with resources; and more to do with the fact that system-wide overlays provide a poor user experience.
Now that processors/hardware/more ram etc are improving in the mobile device world Android is looking better and better and providing devs with a lot bigger of a sandbox to do things system-wide. I have a ton of "floating" apps on my Nexus with negligible compromise on my system performance... It makes my tablet feel as though I am in a real multi-tasking environment not like iOS with saved states and push.
That's one of the things I hate about Android. I'd rather have everything go through a single push service than to have each app install their own background message services (like they do on Android; even if you're not using WhatsApp it's still running a daemon to listen for new messages). Google's APN clone (C2DM) doesn't seem to have caught on, based on the number of 3rd party polling services I have on my Nexus.
Also, apps only save their state when there's not enough room for them to live in memory. People who don't understand it make too much of big deal out of it.
Back to Apple.. When you look at iOS devices vs Android on paper; Android blows them away in almost every aspect of hardware. Yet real world performance to the user it appears to be the same. And that is the way the Apple wants to keep it. They can do more with less and keep costs lower and competitive by having tight reins on the OS and what devs can do.
That's because Android uses a fundamentally inefficient system. Android uses Garbage Collection, which has been studied and shown to require
at least double the memory that's actually needed while also gobbling up lots more CPU time. The less memory you have available, the more CPU time it takes up.
With ARC, you should be able to get pretty close to the minimum required amount of memory and CPU cycles.
Read this. You can skip down to the section titled "all about garbage collectors". When it comes to technical decisions, whether it's the 32/64-bit transition or GC vs ARC, Apple get it right.