Suggested simplification (multiple generators are same as nested comprehensions):

```erlang
[ O2 || O1 <- Objects, O2 <- Objects, strict_descendant(O1, O2) ]
```