mainwindow.xib - это ваш компонент UIWindow, который вы можете видеть как экран вашего iphone, он всегда будет там, несмотря ни на что. В ваших примерах, когда вы показываете свой контроллер представления непосредственно, это потому, что контроллер уже является подпредставлением вашего UIWindow, которое является mainwindow.xib в Интерфейсном Разработчике.
На самом деле нет никакой разницы между двумя методами, в первом вы добавляете свой контроллер в качестве подпредставления программно, используя:
[window addsubview:mynavcontroller]
И во втором, который вы делаете через конструктор интерфейса, вы можете использовать любой метод, который вам удобнее.
На самом деле вам не нужен контроллер для отображения представления, однако они могут быть полезны, если вы хотите выполнять какие-либо дополнительные действия, такие как поворот представления или загрузка определенных данных во время загрузки представления. При этом вы можете добавить свой вид как подпредставление своего окна, и оно все равно будет работать.