Если я что-то упустил, вы правы, что vc1 и vc2 должны быть выпущены. Опубликованный вами метод распределяет контроллеры представления, поэтому он должен либо сохранить их в переменных экземпляра, чтобы их можно было освободить позже, либо выпустить их и освободить их после добавления их в массив.
В практическом смысле, однако, это не имеет большого значения. В приложении, основанном на вкладках, контроллеры представления, связанные с контроллером вкладок, обычно сохраняются на протяжении всего срока службы приложения. Когда приложение закрывается, эти объекты все равно будут очищены. Это также не совсем утечка, так как у контроллера вкладок все еще есть ссылки на объекты, на которые указывают vc1 и vc2, но он настолько близок к утечке, насколько это возможно, не становясь истинной утечкой.
Хорошие глаза, хотя. Вы должны рассмотреть вопрос об ошибке в Apple по этому поводу.