Cycles: Texturize a feather made from particle system?
The Geometry node, which you're using, produces coordinates in world space, so the position, rotation and size of the object do affect the result. In a sense your texture is being projected, just as you suggest. Instead you should use the Texture Coordinate node.

The Generated socket gives coordinates from (0, 0, 0) to (1, 1, 1) for the bounding box of the object, regardless of the object's size.

The Object socket gives the coordinates in the object's local space.

I replicated your node setup, but used the Texture Coordinate node instead, and I skipped the Mapping node.



This image is with Object coordinates.



And this is with Generated coordinates.



The Suzannes in the images above are identical in every respect except being at different locations and rotated differently.

Consider taking a look at Bartek Skorupa's excellent explanation of texture coordinates, Manipulating texture coordinates like a boss, which goes into a lot more depth about how texture coordinates work.