The Noise shader can access the Pref coordinates to prevent swimming. But for other procedural textures, you’ll have to take a different approach (unless you whip up [a relatively simple] shader to get the Pref coordinates). Here’s one way, using ICE to store UVWs in a CAV, and then a Vertex Color node in the render tree.
First, create a Spatial projection and a Color at Vertices (CAV) property on your mesh.
Then build an ICE tree that gets the projection UVWs and stores them in the CAV.
In the render tree, use a Vertex Color to get the UVW information from the CAV, and feed that into the texture coordinates of the procedural texture.
Or just use the Projection_Lookup node.