What is the order of return value for field_info_instances?
This is the query run by field_read_instances():

$query = db_select('field_config_instance', 'fci', array('fetch' =&gt; PDO::FETCH_ASSOC));

$query-&gt;join('field_config', 'fc', 'fc.id = fci.field_id');
$query-&gt;fields('fci');

// Turn the conditions into a query.
foreach ($params as $key =&gt; $value) {
  $query-&gt;condition('fci.' . $key, $value);
}
if (!$include_inactive) {
  $query-&gt;condition('fc.active', 1)-&gt;condition('fc.storage_active', 1);
}
if (!$include_deleted) {
  $query-&gt;condition('fc.deleted', 0);
  $query-&gt;condition('fci.deleted', 0);
}

$instances = array();
$results = $query-&gt;execute();


So it's safe to say there's no default order for field instances; they'll be in whatever order they went into the database, or perhaps different depending on your DBMS and settings.