I believe the basic usage of chaining when().then() multiple times is that it implies a priority: i.e. the FIRST when() that is true will take effect.
In the example shown here, "Gold" has a value < 0, and therefore (were it not commented) it would still trigger the first when() and be colored with the Reds scale, and this plot would look the same as it does now.
On the other hand, if name=="Gold" was the first when().then(), I think you would get the result you want.