Why does subtracting weights add weights to other parts of the mesh?
Turn off "Auto Normalize" and it'll work as expected.

What normalizing means:

Let's say we had a vertex group with four vertices that have a weight value of 0.1, 0.3, 0.45 and 0.7.
Normalizing these values would mean that every weight is scaled up so that the highest value is 1. To achieve that, divide 1 with the highest value and multiply your other weight values with the result.
In our case this would mean 1 divided by 0.7 = 1,4285714286.

If we apply this equation on our values, we get 0.14, 0.43, 0.64 and finally 1. 

(Every value rounded to two decimal places.)