С точки зрения дизайна языка, почему рубиновые блоки не являются первоклассными?
Точно так же я считаю, что блоки должны быть лямбда-выражениями, что избавляет от необходимости в громоздком синтаксисе, таком как proc {...}. Call или & proc, или lambda, или Proc.new. Это также избавило бы от необходимости доходности.