Я думаю, что вы правдивы, когда говорите, что ждете слишком много :)
Сиенский запрос all().order("points").fetch()
выполняет запрос к БД.
Таким образом, он упорядочит значения, хранящиеся в БД, а не в вашей программе.
Из того, что вы говорите, я вижу, что у вас есть метод getPoints, который вычисляет значение.
Тем не менее, если вы не сохраните это значение в базе данных, Сиена не сможет выполнить заказ.
Таким образом, вы либо вычисляете значение, устанавливаете его в своем объекте и сохраняете объект в БД.
objectWithPoints.points = getPoints();
objectWithPoints.save();
Либо вы сами упорядочиваете значения в своей программе после их вычисления.