That aspect of not being sure how your assets should line up is a general "game engines are complicated" problem, which occurs as soon as you add this kind of flexibility: suddenly there's just a lot more dependency behavior to be aware of as you set up your data and a lot of code bugs become data bugs.
Godot is relatively consistent in what it wants and how it parses a scenegraph, but it's still a little bit quirky: it usually behaves best if you break out any dynamic elements into different scenes so that their instancing is fully encapsulated, and for things that need to change state, add on/off toggles but keep it statically instanced. Attaching stuff after the scene has been instanced tends to bring it out of sync with the state of the collision/physics servers.