Sorry, I'm wrong -- I read dx2 as 0.02 rather than 0.01. With that corrected, I match your dX value.
As to an explanation/rationale, suppose for the moment that dm1 = dm2 = 0 (no uncertainty in the masses). Assuming independence of the variations in x1 and x2, and letting a = m1/(m1+m2), dX^2 = a^2 dx1^2 + (1-a)^2 dx2^2. Suppose now, as with your example, that dx1 = dx2; then dX = dx1 * sqrt(a^2 + (1-a)^2). Since a^2 + (1-a)^2 < 1 for 0 < a < 1, which is the case here, dX < dx1 = dx2.
In effect, you are averaging presumed independent random variables, and averaging reduces variance.