meshcut: cut a mesh along a vertex chain. isocurve: extract isocurves on a scalar field defined on a manifold triangular mesh. It doesn't allow to limit to operation to a given vertex group though. colormapvertexcolor: assign vertex color to visualize a scalar field defined on mesh. At least it saves the steps of having to create and apply the modifier - and I believe it can bypass the limitation of the modifier not being aplly-able if the models have blendshapes, but I need to double check on that. On a side note, there is a slight variant that exist for the current workflow that speeds it up just a bit : it is possible to transfer this normals information by running the Transfer Mesh Data operator directly from object mode. The program will create a new shell with an optional offset distance. Note that if there are no disconnected parts of the mesh besides the armor, using the By Loose Parts option might be faster.
By Material Creates separate mesh objects for each material. The simplest method is first selecting the part to be separated, then using the Edit Extract (Shift+D) command. Separates the mesh in its unconnected parts. And then the splitting into different models would carry over the custom normals from there. Meshmixer offers several ways to separate a part of a mesh. Or even without/before splitting off the models into different meshes, perhaps there could be a way to deal with the smoothing after running mesh>split>face by edges. Couldn't there be a way to store the normals information of the verts/faces that are about to be affected, and apply that back ?
Transferring the desired normals from the original unsplit model is indeed the way to go and what I've been doing for a while, but it is quite prone to user error and convoluted overall especially when dealing with multiple cuts and models variants that differ outside of the common edges. Hello all - bumping this up as I'd be curious to know if any better solution has been found.