How to rotate a procedural texture on a single object?
The solution is to make a separate material for each object (or set of objects that share the same properties) - as that allows you to adjust it for each object. However, it's not that you need to replicate the whole material and can't share sets of nodes, since you can create a Node Group that contains most of your material and re-use that group within each seaptarate material - maybe just adding a Texture Coordinate and Mapping node to each one so as to allow the orientation and scaling to be adjusted.