Well it is very useful in C/C++. One common use is something like:

if (!(%var = $somefunc()))

Yes you're right,
%var = $somefunc()
if (!%var)

is equivilent, but the other is shorter (and in an interpretted language that means faster), and cleaner.

The problem? Although I think this is a great idea, I don't think it should be added. Unfortunately, mIRC treats = just like ==. So if someone has:
if (%var = 1)
in mIRC, that is equivilent to:
if (%var == 1)

while it is bad style to use the = instead of ==, a lot of scripts do it, and changing the way = works would break those scripts. The only way I can see this being added is if the suggestion (I forget who suggested it) about pragmas are added:
pragma equal-is-assignment on

That would make it so that = is treated as the assignment operator rather than the relational equality operator. If that pragma were not specified, then it would just function like it currently does.