Seriously, it's a domain with huge under-the-surface complexity (no pun intended)[1], and most of the early efforts were spent in dealing with the maths and science, rather than software engineering. Things are getting better though.
[1] here is a good jumping off point (imagine the technical debt this might lead to): https://en.wikipedia.org/wiki/Spatial_reference_system
If for some reason we can’t get a geolocation, for various reasons, even a user simply denying access to gps, we can still deliver meaningful results as while the data is improperly located, it still has meaningful coordinates relative to itself and can be transformed later.
To a certain extent, all gps data is lying to you, it’s about figuring out how much it’s lying to you, sticking something at 0,0 is fairly tame and much easier to detect than something being out by 5cm
We do indicate to the user in the ui if no gps signal is available for example, or it’s low quality, but sometimes we get things like the system reporting it’s current location as the estimated location of the last wifi connection.
We also might start something and have no gps, but acquire it later, could be seconds, minutes or never, the accuracy can increase and decrease, we don’t force the user to give up, we record what we can. we still face limitations from software further down the chain that require coordinates as inputs.
This looks to me like a bunch of individually broken pieces of software that have a common failure mode.