'relation' => array(self::HAS_MANY, 'targetModel', array('targetModelId' => 'id'), 'through' => 'connTable'),
$model = $this->loadModel($id, 'Model')->with('relation');
gives back only 2 objects instead of 3.
as I see, a LEFT OUTER JOIN is used in this case. the query itself gives back 3 rows, so it's good. the problem is somewhere else. as I see, only the primary key of the target table is selected, and that's where a distinct effect can come into the picture.
somewhere inside a function that deals with the objects, there must be an unwanted (in this case) array_unique function I guess.