Hi,
1. Yes, everything you said is correct. During mapping, localization can happen with loop closure detection but also proximity detection (which is similar to loop closure detection but using odometry to help the search with close nodes). When using a lidar and with RGBD/NeighborLinkRefining=true, the robot can correct the odometry using lidar at each map update. In localization mode, the robot can exit the map and come back and be relocalized, there is no assumption that the robot should be always in the map.
2. When driving straight, it is more an odometry issue, but yes after some time if you pass by near an already visited place, it is better to revisit it to find a loop closure to reduce odometry drift. To reduce odometry drift, a careful tuning of wheel odometry can be done, a fusion of wheel odometry with visual odometry and/or IMU (see
robot_localization package), adding a 2D lidar with RGBD/NeighborLinkRefining=true as above or even doing lidar odometry could be done.
cheers,
Mathieu