I'm running on JB. The Google Maps application always seems to have 2 instances running in the background inspite of turning the GPS off. Is there a clean solution to prevent it from ever running in the background?
One part of Google Maps is a so called "Location Service", which kicks in on a couple of intents (e.g. always when your network connectivity changes -- which happens when you login to a new WiFi network, or to a new cell tower). It caches your current location to the "location cache", which should serve to faster provide your current location when needed (and to update Google's location database, as the cache's contents are submitted in intervals).
Without being rooted, there's not much you can do about. But if your device is rooted, you have several options:
Which method to prefer? I personally would go for the second. Titanium backup lets you create a widget on your desktop to toggle the "frozen state" of an app, so you can easily switch it on/off. Disabling some listeners might work well -- but the app also might start behaving strangely.
In Settings / Location settings, uncheck "Report from this device". Make also sure to disable Google Now.
Seems to do the trick with Maps 6.14.1 on JB 4.1.2.