Using a value of nil with setVariable on an object, the variable is not deleted from the object. For example:
allVariables player; // Returns: [] player setVariable ["something", true, true]; allVariables player; // Returns: ["something"] player setVariable ["something", nil, true]; allVariables player; // Returns: ["something"]
This in my opinion is very unexpected behaviour and has potential for performance degradation in MP environments. Because the variables are not being deleted correctly, JIP clients are still being sent those variable names along with a value that when converted to a string returns "<null>".
However using missionNamespace instead of an object such as player will result in what I believe is, or at least should be the intended behaviour. In this case the variable is correctly deleted and the variable can no longer be returned using allVariables missionNamespace.