When deleting a stip leading up to a crossfade, the transition will move the transition on top of the following stip and in the full duration of that strip:
https://devtalk.blender.org/uploads/default/original/2X/9/95ec526e9cc369caae9b55be1c46c03f71035f38.gif
Maybe it is because of the frame_start of the cross transition strip is read-only? So instead of having its own frame_start value defined it inherits the frame_start value of the second strip?