I'm not sure what the precise language design reasons were for the differences in meaning, but I can help clarify how they are different:
In the first case: GeoGraphics[Locator[x]]
, the kernel does not know that you want to dynamically update the value of x
, so, while it updates the coordinates of the Locator
, it does not update x
.
In the second case GeoGraphics[Locator[Dynamic[x]]]
, it does update the value of the variable x
.
Here is a demonstration to clarify:
DynamicModule[{x1, x2},
x1 = x2 = {-63.`, 45};
Grid[{{GeoGraphics[Locator[x1]], Labeled[Dynamic[x1], "x1", Top]},
{GeoGraphics[Locator[Dynamic[x2]]],
Labeled[Dynamic[x2], "x2", Top]}}]
]