Hi,
For a TF configuration like this and frame_id=base_link:
/base_link -> /camera_link -> /camera_rgb_optical_link
Odometry will transform 3D points seen in the camera frame /camera_rgb_optical_link into /base_link frame, then do computation. So yes, in a way it "thinks" that the camera is on /base_link. You will get /odom -> /base_link. Note that if TF between /base_link and /camera_link changes (e.g., the head of the robot turns and the camera is on it), the 3D points will still be correctly transformed in /base_link frame (the odometry will not turn if /camera_link is turning and not /base_link).
If frame_id=camera_link, you will get /odom -> /camera_link, which is wrong as /base_link is the fixed frame. Well, the frame_id should be the main fixed frame of the robot (in some examples it is /base_footprint).
cheers,
Mathieu