Это с какой точки зрения всё это прям таки невозможно? Криво реализованное легаси я бы сказал. В других языках всё перечисленное есть и без этого синтаксиса.
un1t, потому что ты постоянно вызываешь findViewById. Это тяжёлая операция. Если у тебя 200 элементов, при просмотре всех оно 200 раз вызовется. А если на экран помещается 10, то должно вызваться примерно 10 раз. Гугли паттерн ViewHolder. Для листвью его можно организовать. Но это бессмысленно, потому что есть ресайклер.