question about plot3d



But

f(x,y):=if (y<-sqrt(1-x^2) or  y>sqrt(1-x^2))then false else sin(x*y)$
plot3d(f(x,y),[x,-1,1],[y,-1,1])$

returns expected result. At the same time,

f(x,y):=block([],
if (y<-sqrt(1-x^2) or  y>sqrt(1-x^2)) then return(false),
sin(x*y));
plot3d(f(x,y),[x,-1,1],[y,-1,1])$

returns graph of sin(x*y) on the whole square [x,-1,1],[y,-1,1].
It looks like a bug. Am i wrong?
>
>> Just a curiosity: why
>>
>> f(x,y):=block([],
>> if (y< -sqrt(1-x2)) then return(0),
>> if (y>sqrt(1-x2)) then return(0),
>> return(sin(x*y)));
>>
>> is not working?
> If |x| > 1, then the square root is a complex number, so the 
> inequality is never true,
> and you always get the sine.