The list ends up being sorted alphabetically by label of the MultiSelectItem(), ignoring both the original order of items and the compareTo function of value.
Ideally there would be a parameter that would determine how items are sorted, or at least the original order is respected.
Generalising this further we could have a list builder that would also allow to show part of the items for larger lists for example.