I propose to change the behaviour of UnitsOff() such that it returns itself unless all symbols except units evaluate numerically.
Current state: If UnitsOf() is called with an undefined argument, it returns 1.
I think this is a bug and would expect some error message like "unknown" or "xxx is not defined"
This example demonstrates that even the mechanism of not allowing UnitsOf() to be called for undefined arguments is not sufficient. This mechanism is fooled by a simple definition chain. Instead, the function should determine inside if it can provide a valid result.