I’d save the complete leg as a reusable scene and instance it at the four hip positions, so there is only one source to maintain.
The mirroring method depends on how the segments are drawn. If they are Sprite2D nodes, flip_h/flip_v mirror the texture without a negative node scale. They do not mirror the knee/foot positions or collision geometry, so those offsets still need arranging.
For your nested BLLeg -> ULeg -> Knee -> LLeg hierarchy, another practical option is one Node2D wrapper at the hip: mirror that wrapper once and keep the child scales at (1, 1). This still uses negative scaling, but confines it to one place instead of mixing it with every joint’s rotation. Godot’s Node2D documentation explains why a negative X scale can appear as a negative Y scale plus a 180-degree rotation.
If you want no negative scales at all and use Polygon2D/Line2D, you can mirror their local point coordinates instead, along with the joint offsets; that does not require drawing new artwork. Are ULeg and LLeg sprites, polygons, or something else? That determines the cleanest approach. Sprite2D flip properties.