I am trying to model certain non-commutative, but associative, structures with Mathematica. As a notation for the product I take CenterDot and add the attribute Flat since the product is associative. Then, I would like to realize certain relations, e.g. $$ a \cdot f[b,c]=f[a\cdot b,c]+f[a,b\cdot c] $$ for a function $f[b,c]$. I thought that this can be done systematically with a simple replace rules
$$a \cdot f[b,c]\,/. a\_ \cdot f[b\_,c\_]\rightarrow f[a\cdot b,c]+f[a,b\cdot c]$$
However, the output of such an operation is (the second term is ok)
$$f[\text{CenterDot}[a],b\cdot c]+f[a\cdot b,c]$$
If I use BlankSequence, $a\_\_$ instead of Blank, the output is exactly I want, but then the rule fails to give the right answer when there are several factors on the left (ideally, I would use the rule as many times as to remove all factors from the left. For example,
$$u\cdot a \cdot f[b,c]$$
is transformed to (in the second term it generates extra arguments, which is meaningless) $$f[u\cdot a\cdot b,c]+f[u,a,b\cdot c]$$
Ironically, the first rule (with Blank) works here and gives the desired
$$f[u\cdot a,b\cdot c]+f[u\cdot a\cdot b,c]$$