They could give the user a button or something to send their location into to whomever they are currently chatting with (to one person in person-to-person chat, or to the group in multi-user chat. This would give the user complete control over their data while still allowing most of the utility.
Of course, this wouldn't give facebook a detailed map of their user's movements.
Honor? Politeness? Wanting to cultivate a healthy, respectful relationship with their users by not going behind their back? Not being creepy stalker who spies on everybody just because you might be able to make a profit from it?
Of course, this is Facebook, which has been fighting with Google for the title of "most creepy, intrusive, privacy-destroying business model". With their ethics, the answer to "what would stop them" is obviously "nothing".
There is a significant PR difference - reporting the GPS location at regular intervals is currently "just part of the regular status update", where Facebook gets to act as a passive man-in-the-middle who records those updates. If sending the location data as seen in all user visible situations is a manually-triggered event, extra code to hand that data off at regular intervals only to Facebook wouldn't be able to hide under the assumption that "it's a feature". In an ideal world, this would be criminal access to unauthorized data. In the current environment of legalized spyware, we are back to "nothing" mentioned previously.
(The terrible granularity in the permission models in these environments is a huge problem. As it affects far more than just location data, that is a topic for another day)
Of course, this wouldn't give facebook a detailed map of their user's movements.