I disagree. If you've mis-typed a macro inside a string that it is still an error, isn't it? And you would want it trapped wouldn't you?
$-variables in strings don't throw an exception if they are undeclared and changing this behaviour will break existing scripts so probably will have to remain as-is for backwards compatibility. I don't think that because this is how $-variables work it is a good reason to apply the same behaviour to macros.
Example:
Code:
$sMyLogFile="\\$sServer\$sShare\@LOGONID.txt"
Personally I think it is much better for this to error rather than populate the string and continue.
To turn the question on it's head, why would you not want a mistyped macro to throw an exception?