Changing drawing order changes the order in which the surface is drawn, but that doesn't mean it will not care about the depth buffer.
Making it ignore the depth buffer won't cut all cases because the object is still drawn with some random order, and when it's not a cube it will indeed cause self-see-through issues anyways, so you need the depth test.
One of the remaining solutions could be to render your model on an offscreen texture (using a Viewport), and draw that on top of the game, so it will really be on top of everything with no visual intersection possible. Though everytime I think about a solution involving viewports (and that happens a lot) I often find out it takes some time to make it work right^^"
There are other ways but I don't see how to do them with the somewhat-fixed rendering pipeline exposed by the engine, like:
- Clearing the depth buffer before rendering the object, or using another depth buffer temporarily
- Using the stencil buffer somehow
- Doing a render-to-texture without having to use a whole Viewport
- Trick the depth by writing to the depth buffer with a shader (see https://github.com/godotengine/godot/pull/22800)
Or simply don't care about clipping since it should be minimal if animations are properly interpolated? In a boxing game I would not expect an animation to always play the same way, it could "bend" so that a "punch" animation can target a defined point in space (3.1 supports blend spaces so you can blend animations to target a moving point so it should not miss or clip too much). This is a bit related to MysteryGM's answer.