Spinebot is right. This is just how weights work. It is not a bug that translate and rotate behave like that.
I'll try to explain, but first, naming your bones QQ20260427-174241 and similar is very unfriendly on human eyes. 🙁 How do you work like this?!
I made a version of your project that makes it more clear:
https://n4te.com/x/3703-cs.zip
3 attachments:
bound is white and is your original. It is bound to tip and root.
tip is green and is only bound to the tip bone (I renamed your horrible bone names 😛).
root is red and is only bound to the root bone.
Now you can see the tip and root meshes as they are transformed by only a single bone, and you can see how the bound mesh weights give you a blend of those 2 meshes.
Rotate the right bone and you can see how all 3 meshes change. With the bone rotated, on the bound mesh increase the weight for all vertices for the tip bone and you can see the mesh changes until you get the same as the tip mesh. Do the same for 100% root bone weights. When your weights are < 100%, you get a blend of the 2 meshes.
I know you are working on faux 3D movements, but this is working correctly. You'll need different rigging if this isn't doing what you need.