From the 2015.2 release to the 2015.3 release, the built-in validation on the Start date was removed from the left-hand treelist. So now I can move the Start date to be after the Finish date, and the Gantt control responds by treating this as a "move". However, there is still built-in validation on the Finish date so that I cannot move the Finish date to before the start. I would expect the same behavior for changes in both directions. If I change the Finish date to before the Start date, then this should also be treated as a "move", where the duration of the task is retained, and the Start is also moved back N days.
This is a trivial change to make. I think it's removing 1 line of code. And this would really help with usability for users who want to achieve a "move" action, but who prefer to edit their data using the left-hand treelist instead of the right-hand timeline.