I think a bug was introduced with alternative-specific designs such that instead of returning a zero, the WinnerLabel function is returning the text from the level, while the WinnerValue function is working correctly (should return a zero if the attribute is missing). Our developers are aware of the issue and it should be fixed in the next release of SSI Web.
As a workaround, I put the entire <tr> to </tr> tag for the alternative-specific attribute into a list, and then wrote an if/then statement to conditionally put it on the page. For example, let's pretend attribute 2 only shows if attribute 1 is level 4. I could put the following in for attribute 2
[%Begin Unverified Perl
if(ACBCWINNERVALUE("ExerciseName",1)) == 4)
That way, the entire table row code only gets shows, and then existing ACBCWinnerLabel function only executes if the 1st attribute was level 4. Otherwise, the row doesn't even exists when the question shows to the respondent. The list is used mainly because it's annoying to escape all of those HTML characters.