Well, if that's possible, that would open a lot of options for arrays in macros!
Do we actually need EVAL at all? If I get it right, it simply tells WeiDU to evaluate strings inside %% as variables. So, always using it would only be problematic with strings that don't contain variables but have double %. Doesn't this happen less often? In that case, a NOT_EVAL could be used.
On another note, the array construct tutorial says:
OUTER_SET $s(x) = 4
// equivalent to OUTER_SET ~s_x~ = 4
But it's not really equivalent, since you can't PHP_EACH the ~s_x~ option.
However, if you do this:
OUTER_SET ~s_x~ = 4
OUTER_SET $s(x) = 5
The value will be 5. And it will be, of course read by PHP_EACH since you set it with $....
Conclusion: be careful when using "_" to set variable names.