For me it is intended. the true part of the $iif is evaluated and %bleh gets evaluated to nothing if it's not set, giving a set error once the parser is done evaluating the command line and execute your set command