I am not quite sure BOOL_V is a good idea, but be it... But IMHO be aware that such solution is extremely fragile because of conversions between numerical values (note that IsNumber is the recommended method of type inquiry there).
Maybe the right solution is to provide special type, RpcBool, or something like that.
USERVALUE_V does not have sense. I must admit that the idea of numeric ids is somewhat fragile as well, but USERVALUE_V would not solve that. At least Value system checks for duplicate definitions.