Subfield() returns a string, so your expression probably gets evaluated like this:
=GetSelectedCount(SubField(vItemOpts, ';', vCurrOpt)) =GetSelectedCount('fieldname2') =null (because you can't get selections for a string, only for a field, and it doesn't recognize it as a field)
I'm not thinking of how to tell it that you mean a field name instead of a string, assuming I even have the problem correct. There's got to be a way, though. Maybe something with dollar sign expansions, variables, or who knows what.