To summarize some of the answers above:
1. Why is this a useless use?
Because eq is used to compare things. You are trying to use it to assign a value. You muse use = for that.
2. What is a void context?
{$cust eq "SMC";} is a void context, because you are
performing a comparison (see 1.) but not doing anything with the result. There is not context for the compare, hence it is a void (empty) context.
3. What can I do to do this better?
The first reply
Re: Useless use of string eq to your post by
Fletch (++) explains best how to rewrite your code.
Perhaps you should ask him about the whole children bearing thing...