Oavsett om du lagrar ett tomt objekt eller array, vad är skillnaden? I BSON lagras arrayer och objekt på samma sätt, som ett dict . Hur som helst, till din fråga.
För PHP MongoDB-drivrutinen är en tom array just det, en tom array, så den lagrar den som en array. När du lägger till ett nyckel-/värdepar till arrayen är det så föraren förstår att det ska lagra ett objekt.
Om du verkligen vill lagra ett tomt objekt, försök :
$d = new \stdClass();
$collection->insert(array('z' => $d));