I don't think there's one standard way to solve this. For different scenerios different approaches will be easier to implement or more performant.
If a game needs to dynamically load the environment, it might do that by separating the world into individual chunks of content, which get loaded on demand, a grid for example. If you need such a chunk-system anyway, a natural solution could be to alwas have the chunk with the player at the center of your world.
If you don't need chunks a solution like yours might be better, at least if the total object count is low.
If double precision is enough (and it probably will be), and your engine/framework allows it, using double for positions might be the easiest solution. You probably want to keep your double precision math to the CPU though, as shader performance suffers quite a bit from it, and the GPU/shader language might not even support it. So whenever you pass positional data to a shader you calculate a float position relative to some center, probably the camera or the player.
If you can't use double, or don't want it for whatever reason, you can get pretty much the same effect by using two float positions for every object. One would be the coarse position, and the second would be the fine position. Added together they make the final position.
Most game worlds are not large enough to run into such problems, so most games, and many engines, don't suppor large-scale at all.
As to what's the most dominant solution out there, I couldn't say. My guess would be chunk-based.