It seems to me that unwrap (in Cadabra 2) fails to recognize properly the dependency of an additive combination of dependent quantities. Here's the simplest case,
\partial{#}::PartialDerivative.
{ A, B, C, D }::Depends(\partial{#}).
ex1 := \partial_{\alpha}{ A (B + r C) }.
ex2 := \partial_{\alpha}{ (A + r B) (C + r D) }.
unwrap(ex1);
unwrap(ex2);
In the first case it treats $(B + r C)$ as a constant. In the second case it produces unrecognizable result. There's no syntax error and the result is wrong which, I suppose, is a problem.
Of course, if one distributes first and then unwraps, the result comes out right. The reason why I need to do the other way around is another problem, which I ask as a separate question.