Yes you could transform your normal map into worldspace but for animated objects that would be too slow since you effectively had to create tons of new textures every frame.
The DOT3 operator for a texture stage is often used in conjunction with a vector constant. So you would take your light vector (world space), convert it into UV space for the triangle at hand and then use this vector constant for rendering the triangle. There used to be a whitepaper on nvidia's site outlining all this and how to extend it to point lightsources.