Я здесь не вижу "массив содержит элементы в том же порядке, в котором они встречаются в оригинальном". Что не документировано, то не обязательно соблюдать. Даже если кому-то важен оригинальный порядок, просто сделает новый массив по событию onFilter. Также не стоит писать "содержит отсортированный отфильтрованный массив", чтобы на это не полагались при составлении схем.
А в будущем можно и Integer, и Real сделать, и вообще свойство выбора алгоритма (с сортировкой и быстрый или с сохранением оригинального порядка и медленнее).