mmmm veamos
dices que el campo id es autonumerico, sabes que signigfica eso?seguro ke si pero si alguno que lea esto no lo sabe pues le cuento mas o menos como son.
Pues que cada vez que se inserte un nuevo registro en tu tabla el motor de la bd se encarga de insetar el registro en la tabla asignandole un valor al campo id automaticamente. Un autonumerico es un campo numerico ORDENADO que se incrementa de uno en uno.
Por otra parte tu me hablas del recordset,mmmm, creo que depende tambien un poquillo de la sensibilidad del cursor,no estoy seguro como lo visualizara pero te puedo asegurar que al insertar SIEMPRE inserta al final de la tabla.
Hombre

se me ocurre que si la consulta que genera el cursor tiene una clausula order by y el cursor es lo suficientemente sensible como para detectar los cambios, basicamente el cursor realiza un refresh implicitamente sobre si mismo y en ese caso si te saldria ordenado...prueba a ver que tal
Ah!!!no se me olvide, nunca, JAMAS cambies el valor de un autonumerico, te ahorraras dolores de cabeza