Re: isNull(fieldName) is true if select more than one value from fieldName
isNull(FieldName) will evaluate to True and is working as designed.
Reason being is that for one row (or in a textbox) FieldName will have multiple values (if you select more than one value). Since FieldName is not deterministic (it can have more than one value) it returns null() or '-'. IsNull() of null() is true.
If you wish to identify if there are no selections in a field, use GetSelectedCount(Fieldname)=0 as Aurelien suggested.