Случай кажется немного надуманным, но вы всегда можете скопировать неизменный объект в map
:
Observable.range(0, new Random().nextInt())
.toList()
.map(integers -> {
if (integers.size() < 10) {
List<Integer> copy = new ArrayList<>(integers);
copy.add(123);
return copy;
} else {
return integers;
}
});