Modifying vertex normals & tangents in custom shader code

I am also interested in this topic. I’ve seen a lot of people posting examples where they have manually calculated normals inside of the vertex shader (or used other trickery, like binormals/tangents offsets), and are then passing those vertex-shader calculations through the CustomizedUV inputs (to avoid taxing the pixel-shader)… but I have yet to see any kind of in-depth discussion of how to handle those manual normal calculations.

Is there a universal approach that will work in most cases, or is it a unique case for each type of vertex shader? (depending on the offsets, etc).

Thanks in advance.