I dont know, its bug or I using the method incorrectly, but problem is this:

I use, for example Vector3 a = rb.GetPointVelocity(hitsArray[i].point);
and no matter what point of rb, even if you specify the origin point

the value (а) is returned correctly if speed is greater than 0.0001 or less than -0.0001
but if the speed gets closer to zero, the value starts to return a random value in the range from -9.9 to 9.9 (approximately)

Physics calculations involve very small rounding errors due to the floating point arithmetic. Therefore velocities will never be exactly 0, but the value will be so close to it that the object won’t effectively move.