Agree that this fixes the problem, but I am not sure it is the right fix.

Deep merge has a specific semantic. Its output is the union of the two inputs.
     something UNION nothing --> something

Here, we are changing the semantic of right_support's deep merge algorithm, so something UNION nothing == nothing.

Maybe the problem is the caller .. maybe he should be using deep_set instead of deep_merge.