для Iterable скорее всего нет, но для Collection может в принципе вырезать лишнее. Мономорфизация уберёт виртуальный диспатч, а потом может уже в месте лишнее выбрасывать
это же слишком сложно. Он должен доказать что:
1. коллекцию не мутируют
2. на исходную коллекцию никто не ссылается, собсна тоже с точки зрения мтуабельности