> It also tests the same thing multiple times, like adding a join in different ways (which is covered already).

I am not familiar with all Propel internals, so feel free to remove any redundancy later on.

> Therefore I think we should have one test, which creates a criteria, changes more or less every property of it, assert it is not equal to a plain criteria anymore, but will be equals again after calling clear()

This was my initial idea, but I assumed it could make test unreadable.
Nevertheless I like it - it is sane and pragmatic. Also reducing current tests acording to your proposal is quite easy.