The error is present in all versions but the workaround is easy. Too many brackets, that's all...
.MODEL small, C
STRUCT1 STRUCT
SMember SWORD 0
STRUCT1 ENDS
.STACK 4096
.DATA
var1 STRUCT1 <0>
.CODE
.startup
mov bx, OFFSET var1
.WHILE [bx.STRUCT1].SMember != 1000
inc [bx.STRUCT1].SMember
.ENDW
.REPEAT
dec [bx.STRUCT1].SMember
.UNTIL [bx.STRUCT1].SMember == 0
.IF [bx.STRUCT1].SMember == 0
nop
.ENDIF
.exit 0
END