1 Нужно отказаться от storyboard, она была сделана для дизайнеров-программистов, имхо. Обычно, проект стилистически един, одинаковые поля ввода, одинаковые кнопки, отличаются только позиции, ну и всякие мелочи. В таких случаях создаю класс с статическими методами, которым передаешь CGRect и NSString, а они тебе кнопку или лабел например.
2 Нотификацию обычно используют, когда нужно оповестить несколько классов, например о загрузке данных. Для остального есть делегат и синглтон
3 Тут кому как больше нравиться, я раскладываю все по каталогам и создаю refs с иакими же именами. Именую так - RootVC, UserView, UserItem
4 Отказавшись от сториборда, использую только NSLocalizedString