Concrete use of convolution algebraic properties There are 3 main properties of convolution in every image processing lecture notes I read :

Commutativity: $f\star h = h\star f$
Associativity: $f\star (h_1\star h_2) = (f\star h_1)\star h_2$
Distributivity: $f\star (h_1+h_2) = f\star h_1 + f\star h_2$

I'm looking for examples of when these are used (in image processing preferably).

From my research:

A system with unit sample response $h$ and input $f$ behave the same way as a system with unit sample response $f$ and input $h$.

$\Rightarrow$ We can interchange filter and image when computing convolution.

If two systems with unit sample responses $h_1$ and $h_2$ are connected in cascade an equivalent system is one that has an unit sample response equal to the convolution of $h_1$ and $h_2$

$\Rightarrow$ We can convolve our different filters instead of applying them consecutively. It can save time if some filters are often used together.

If two systems with unit sample responses $h_1$ and $h_2$ are connected in parallel an equivalent system is one that has an unit sample response equal to the sum of $h_1$ and $h_2$

This is where I'm unsure. In which instances we would frequently have multiple systems connected in parallel ?
Certainly in ML while computing some CNN.
Also learned about some sharpening method using blur:
$$
f' = f + c \cdot (f - f * h_{\text{gaussian kernel}})
$$

I can't think of any more common examples so I would be glad if you could enlighten me with some and/or correct my eventual mistakes.
Thank you very much!
For part 3, there is an old trick dating from the time where computing was expensive. If you have a smoothed version $I_\sigma$ of a picture $I$, you can get a crude yet simple approximation of a  Laplacian from $I -I_\sigma$, illustrated here with the Gaussian:

It is indeed generalized in many unsharp filters, with other weights, or in multirate/multiscale (pyramid) operations.
For part 2, you can convolve twice by Gaussians with a single convolution of a single Gaussian. Yet the most classical (yet rarely understood) is that smoothing first then differentiating is the same as differentiating then smoothing, see for instance Laplacian of Gaussian operator. Many people believe that smoothing first reduces noise. However, one can combine derivatives and smoothing, and save a couple of operations, and even design innovative gradients:

For part 1, this is used a lot in proofs. This is something one uses implicitly very often, for instance in cases when you have an image that you need to convolve a lot of times (scale-space filtering for instance) vs a lot of images you convolve when a filter known a priori.
Related question:

How to choose the size of a Laplacian of Gaussian kernel for filtering images fast?