Logical trees: difference between Before Project Normalization and Join Collapsed
Is it possible to construct a query where there is a difference between those two trees?

No.
The sequence of events is:

The Join-collapsed Tree is printed immediately after Heuristic Join Reordering.
Memory usage before project normalization is printed (if enabled).
Normalize Projects is called.

If project normalization has been disabled, it exits.
Otherwise, a call to Derive Group Properties is made.
Nothing has been added or changed, so properties are not rederived.
Normalize Projects prints the Tree Before Project Normalization.




The extra call to Derive Group Properties has almost zero cost if no work needs to be done. One can only speculate why the tree is debug printed on entry to Normalize Projects.