To me the following looks like a bug, but I'm not sure. In Cadabra 1 using @unwrap after @prodrule always seems to pick the last term. For example,
\partial{#}::PartialDerivative.
x::Coordinate.
ex:= \partial_{x}{ A B };
@prodrule!(%);
@unwrap!(%);
gives the final result to be $A \partial_{x}{B}$ while it's expected to give zero as I've not assigned any dependence. If I do the same thing in Cadabra 2, it does indeed give zero.
Maybe I'm missing something?