I don't really understand the annotation/code, but according to the JCR spec:
23.6 Properties are Never Orderable
Properties are never client orderable, the order in which properties are returned by Node.getProperties() is always maintained by the implementation and can change at any time.
So unless the references get corrupted somehow (i.e. values are lost on edit) - in which case this would be a bug, IMO it's not reasonable to expect a consistent order. Internally we are storing properties in "insertion order", but that's an implementation detail and it's not a "client-contract".
Conceptually, I don't understand why having a particular order to a List of references would/should matter.
In our case, the list contains references to e.g. articles or documents and those lists can be edited/sorted by an author, hence the order of the references in the list is important for us.
@JcrReference is an annotation from the JCROM framework we are using for mapping repository representations to java objects (https://code.google.com/p/jcrom/).
ok, the use-case makes sense. Feel free to open an enhancement request for this.