I could imagine this is somewhat intended. I do not know how joints are handled internally but I could imagine that the deformation of the middle bone is not seen as some kind of rotation if you move the joint (translations/movements basically get ignored/nulled when calculating normals). So it’s possible the engine just sees the movement as you kind of redefining the bone (basically if you rotated the bone/moved the joint differently before skinning you would not expect the normals to change either right?). Like I said this is just my guess, so I could be wrong.
What are you trying to do? Is the gif just an example or is that the actual mesh you wanna deform? If it’s the latter you could probably create the mesh procedurally and just use empty scene components instead of bone joints to control how it’s created. That would let you calculate and specifiy the normals yourself.
If you just want flat shading you could also “cheat” a little and just overwrite the normals in a material. Just plug the world position into the ddx and ddy nodes, normalize their outputs and then plug those two into a cross product and use that as the new normal (you’d might have to change the order of the cross product inputs if the normal seems inverted). That’s a really cheap way of recalculating normals but it only works for flat shading.