We've had obs.location forever (in fact, it used to be
required), but I'm not not sure why it's there. I searched my old emails for a hint; no luck. I may have overlooked it, but I didn't see location in HL7v2 OBX or OBR... nor in FHIR's Observation resource.
I'd second Darius, but guessing obs.location != obs.encounter.location is <0.0001% and less sure there's some random scenario where it's important. :-)
How about just not implementing obs.location in FHIR, assuming it will eventually be deprecated within OpenMRS? When we introduce the ability to track technical transactions of obs, it will become more obsolete.
Regarding concept mappings, I would expect "display" to be something human readable, not a UUID. If you were to include UUIDs, which could be useful to clients, OpenMRS-specific UUIDs would make more sense, IMHO, as an extension on the code. If you don't have a human readable display value for a reference term (i.e., name is blank), then omit the display value in the FHIR resource.
Cheers,
-Burke