>  0.1 and 0,9 - used to give 1

And that is exactly what was wrong. Real-world example: Consider two half-transparent pieces of glass, when you put them together you can never get a completely non-transparent glass packet. The new formula is a common standard of handling alpha channel within color operations, basically it's just [this one](http://www.w3.org/TR/compositing-1/#simplealphacompositing) also known as [this one](http://www.w3.org/TR/compositing-1/#porterduffcompositingoperators_srcover) (the same alpha compositing algorithm is used in svg, html.canvas and it was used in most of graphics editors and libraries since 80's :)

> Math.min(1, this.alpha + other.alpha)

Nope, this is incorrect method.