If there are let say 4 items then in the DB, item's order are stored as
prev case:
            1, 2, 3, 4
(all present in the same category)
and if I am editing item with 3rd order then it came selected by default in the ordering field. To assign new order (let say 2nd) to the 3rd order item we select "2. something" and save it. But the actual value sent is "2" and "something" item also have this same "2" order. So when we reorder the whole category then it is not certain which item gets "2" order.

current case:
            1,3,5,7
items are rendered as (if we are editing 3rd order item)
<option value="0">1. foo</option> <!--Actual order stored in db is 1-->
<option value="2">2. bar</option> <!--Actual order stored in db is 3-->
<option value="5">3. foobar</option> <!--Actual order stored in db is 5-->
<option value="8">4. barfoo</option> <!--Actual order stored in db is 7-->

Now if we select option "2. bar" then 2 get posted and it will be inserted in between 1 and 3 so now sequence of becomes
1,2,3,7 
and after reordering it will be converted to 
1,3,5,7
which is rendered as 
<option value="0">1. foo</option> <!--Actual order stored in db is 1-->
<option value="3">2. foobar</option> <!--Actual order stored in db is 3-->
<option value="6">3. bar</option> <!--Actual order stored in db is 5-->
<option value="8">4. barfoo</option> <!--Actual order stored in db is 7-->

So in conclusion earlier two items get the same order at a time and on reordering we can't certainly say which will comes first.
*Notice the sequence rendered to user is still 1,2,3,4