What vec dist does is sqrt(x*x+y*y+z*z), where x,y,z is the difference vector of the 2 vectors you passed in. So that's no problem at all for 1 calculation per frame. But the sqrt can become a problem when you call vec_dist a lot. It is most likely "worth it" in terms of performance to store it in a skill. But then again, why bother with the extra complexity when the performance gain is minimal? Only do it if you call vec_dist a lot. See if you can notice the difference in function execution time (F11 debug panel: fnc).
Another usefull trick you might want to consider is comparing squared distances. This leaves out the sqrt(by far the most costly operation of vec_dist), but it only works when COMPARING distances. When you need the actual distance you need a sqrt. But for example, if you want to check if an entity is within 500 quants from the origin, this works too: if(my.x*my.x+my.y*my.y+my.z*my.z < 500*500).