Now both are visible: pond spans x -0.44 to 0.79, cabin at 0.47-0.85, dock at 0.30-0.40. But the cabin is pushed to the right edge (0.85) and the pond left-of-center. The composition has the cabin on the right, pond center-left. That's workable, but the cabin is a bit cramped. Let me pull back more and shift the aim so both sit nicely: cabin center-right, pond lower-left.

import bpy, math
from mathutils import Vector
from bpy_extras.object_utils import world_to_camera_view

cam = bpy.data.objects['Camera']
scene = bpy.context.scene

def set_cam(loc, target, lens=40):
    cam.location = Vector(loc)
    direction = Vector(target) - cam.location
    cam.rotation_euler = direction.to_track_quat('-Z', 'Y').to_euler()
    cam.data.lens = lens

def project(xyz):
    v = world_to_camera_view(scene, cam, Vector(xyz))
    return (round(v.x,3), round(v.y,3))

pts = {
 'cabin_ridge': (-4.0, 1.0, 6.2),
 'cabin_center': (-4.0, 1.0, 1.6),
 'cabin_left': (-8.0, -2.0, 2.0),
 'cabin_right': (0.0, 4.0, 2.0),
 'pond_center': (8.0, -7.0, 0.0),
 'pond_near': (8.0, -0.6, 0.0),
 'pond_far': (8.0, -13.4, 0.0),
 'dock_start': (4.6, -4.9, 0.9),
 'dock_end': (7.2, -6.2, 0.9),
 'tree_back_l': (-8.6, 5.8, 4.0),
 'tree_back_r': (2.6, 7.6, 4.0),
}

# further back, slightly higher
set_cam((15.5, -15.5, 5.0), (-1.5, -1.5, 2.0), 40)
for k, v in pts.items():
    print(k, '->', project(v))