I tried replacing ^ with value*value, didn't notice any change in fps.
And when I'm using actual sprite coordinates instead of random values, surprisingly distance() expression is faster!
distance(Sprite.X, Sprite.Y, Sprite2.X, Sprite2.Y)<500
is about 3-4 FPS faster than
(Sprite.X-Sprite2.X)*(Sprite.X-Sprite2.X)+(Sprite.y-Sprite2.Y)*(Sprite.y-Sprite2.Y)<250000
Anyway, I will stop worrying about using distance() in my games