In 4.x, you are mostly correct – you should only use Live Coding when making code changes, not structural changes.
I haven’t used it yet, but I believe 5.x supports reinstancing objects while running, so you can do a Live Coding update, and it will absorb structural changes without destroying things quite so handily.