I don't really know how LGSVL implements odometry, but in my mind odom is not a fixed frame. My understanding aligns with yours about the chain earth->map->odom->base_link. Here:
• base_link is between the rear wheels of the car
• odom is initially at the spot where the car starts
• map is in the origin of the map
• earth is in the center of the earth
Now, the way I understand it, when the car drives, its odometry is not ideal, so there is some wheel slippage. Imagine, for the sake of example, that a car starts from the center of the map (making odom and map be at the same spot at the start) and drives straight in x direction for 10 meters. However, let's say its tires, say the left ones, are deflated. In the odom frame the position of the base_link frame will be [10, 0, 0]. However, in the map frame the car will drift to the left, so its position in the map frame will actually be smth like [9.5, -0.5, 0]. One way to deal with this is to _correct_ the position of the vehicle by some alignment with map. We perform the update and move the car to its correct position. Now, the coordinate of base_link in odom frame is still [10, 0, 0]. So there is no way for map and odom to be aligned anymore. The way to deal with this is to move odom frame around making it a dynamic frame.