This ticket is similar to but not identical to #5090 (that one is about getObject, this one is about getObjects). This problem seems to be specific for when the route is of type sfDoctrineRoute.
On row 143, sfObjectRoute takes a return value of type array with no count to signify a failed retrieve of objects:
143. if (is_array($this->objects) && !count($this->objects) && isset($this->options['allow_empty']) && !$this->options['allow_empty'])
However, if the route is a sfDoctrineRoute this check will fail because the data returned by getObjectsForParameters there doesn't return an array but a object of type Doctrine_Collection. The way to establish if getObjectsForParameters failed would be to call the count method on Doctrine_Collection, like this (untested code!):
143. if ($this->objects->count() == 0 && isset($this->options['allow_empty']) && !$this->options['allow_empty'])