GPS apps such as Google Maps do not rely on Background App Refresh to perform their tasks. They use CoreLocation, and declare Location Updates as one of their capabilities. This allows them to run continuously in the background (with caveats).
Background App Refresh allows an app that declares Background Fetch as one its capabilities to periodically (but infrequently) download small amounts of data in the background. The scheduling for background data fetch is left at the discretion of the operating system, and may actually get cut off after the app is not accessed for a number of days.
Background App Refresh is useful eg. for news apps, allowing them to have fresh content ready to display before you launch the app (as per Craig Federighi’s keynote presentation at WWDC 2013). This functionality is non-critical, and apps should be able to live with it disabled.
For further details, refer to Apple’s App Programming Guide for iOS.
If-This-Then-That also has a layman’s explanation of how some background operations work in iOS under the heading About iOS Background Syncing.