I don't use KiCad, but I think that problem is not unique to that program. In Eagle, I generally ripup any tract to a component that is being moved in a non-trivial way, then reroute. There is also a tool to "heal" broken tracks that are in a straight line, but what you perceive as straight is not necessarily what the program to upteen digits sees. It also doesn't fix little pieces of a tract visibly buried in the main track.
One needs to be careful in Eagle when ripping up a single track not to rip up an entire net, e.g., VCC. Then, it's a bit of a pain, but ctrl+z usually fixes that and allows a redo.
Bottom line, I generally rip up before moving, and when I do move with some tracks attached that are only partially ripped up, I am careful to stick to usual design rules, like 45°bends, and setting my cursor on the exact origin when redoing the tracks.