How do Blitz3D assigns work?

Blitz3D Forums/Blitz3D Programming/How do Blitz3D assigns work?

I had a problem where I assigned a function result to a variable, and then inverted that variable to get a division by zero. While writing a query on this forum I just twigged what might cause this and found the problem.

magnitude#=EntityDistance(source,target)
magnitude#=1/magnitude#

The above statement apparently generates a blank magnitude# variable, of 0 value, and then uses that in the 1/magnitude# expression, instead of creating a temp, performing 1/magnitude# to that temp, and copying back to magnitude#.

Are there any details on Blitz's operation that would explain this? It seems a very non-standard way of dealing with variable assigns. I don't think I know any other language that doesn't produce the result x=1/x that you'd expect.