Hi Arina.
I understand your frustration. The capabilities of cadabra are a bless and a curse.
I believe that the "problem" is that cadabra was born as a tool for manipulation, not calculation (perhaps Kasper could tell us the story one day).
In defense of cadabra, even great calculation software, e.g. Mathematica, Maple or sagemath, suffer of the same problem.
A typical example in Mathematica is the simple calculation of Sqrt[x^2]. Even if you later simplify the expression, you won't get the expexted result, because the software is not assuming that the variable is real (which is an advantage in certain situations, but probably not most of the time).
The main purpuse of mathematical software is to help you obtain the result, less prone to errors. It is a good praxis to check manually if the expressions might simplify farther.
Now, in order to reduce the amount of time spent in manual manipulation of the expression, try to use different algorithms before (gladly, usually those take just a few moments to the computer).
In your example, consider the following:
ex := 6 A B + 6 A C;
factor_out(ex, $A$);
The above yield an unexpected result. But,
ex := 6 A B + 6 A C;
simplify(ex);
returns what you expect.
Of course this is a very simple case. Moving a bit a further, consider
ex := 6 A B + 6 A C + 6 B C;
factor_out(ex, $A$);
simplify(ex);
You'd noticed that the factorisation does not fulfil our expectations, but the additional simplification does!
If your expressions allows it, try using different sympy algebraic algorithms (or Mathematica's).
Sorry for the extended (and possibly unsatisfactory) contribution.
Cheers,
Dox.
Update 1
In order to pass more than one arguments to the map_sympy algorithm, just include additional strings, for example
ex := 6 A B + 6 A C;
map_sympy(ex, "collect", "A");