mysql_insert_id, verifica el último id generado por el autoincrement por el último query que se ejecutó exitosamente. Si vez en el manual, indican
Cita:
Iniciado por http://php.net/manual/en/function.mysql-insert-id.php Note: Because mysql_insert_id() acts on the last performed query, be sure to call mysql_insert_id() immediately after the query that generates the value.
Esto quiere decir que debes colocar exactamente después la función para que siempre tome el valor que se indicó anteriormente. Si lo indicas después de algún código que no fue el INSERT, puede que tome el valor de otro ID. Por eso se debe colocar justamente debajo.