My problem may have been that I was exiting the update cursor and expecting the order to stick. I am not sure how to stay within the cursor, I have bunch of for loops that run after the reordering.
The rest of the code looks at the variable I am sorting by and another and then assigns a name to the line. It then queries the next row and if it is part of the link it assigns it the same name, all the way down to 0. Then it starts over at then next link without a name and repeats. The cause for the question is that the longest line of links needed to be named first, they always have the highest LINKNO but do not necessaraly fall at FID 0.
LINKNO UPLINK NAME
449 448 a
448 446 a
447 445 b
446 410 a
445 403 b and so on.
I gave in and just created a new .shp with "arcpy.Sort_management", it adds hastle but once coded it will be fine.