Export, $Puts() is executed always

I found out put() and puts() statements are executed even the execution flow does not pass from that point.
A very simple code.

$if($eql(1,2),$puts(myvar,'bcdef'),'1 = 2')
Output of this code is
1 <> 2

Variable myvar is set to 'bcdef' even $puts() is not meant to be called because of $if condition (1==2).
Very disappointing...
Is this behavior since the beginning of mp3Tag?

My experience is, that the functions $put/$puts cannot be used as an argument within an expression.
I use the function $put/$puts always at the top most level.

For example (this is a different algorithm than yours, just to show the principle) ...
$puts(myvar,$if($eql(1,2),'bcdef','1 <> 2'))

See also ...
Check if field value is identical for all selected tracks


I understand your point. Do you think someone can confirm how mp3tag was designed to use $put/$puts statements?

Yes, I assume there is one, who is able to do so.