Как правильно организовать структуру приложения на клиенте, чтобы было как m.vk.com?
Backbone дает самую минимальную основу для создания Single Page.
Предлагаю взять backbone.layoutmanager. Это обертка над backbone view и умеющая при правильной настройки сама подтягивать шаблоны, кешировать их и рендрить в нужное место.Template-rendering пример настроект как запрашивать шаблон. С такими настройками во view можно писать template: "main.html" и он запросить этот шаблон по пути "/templates/main.html"Nested-views пример как можно заменить одну View на другую, использую у родительской метод setView( "#content", new NewView() )
То есть архитектура приложения в backbone должна выглядеть так: 
При загрузке страницы у нас есть основной элемент, который не меняется, его мы указываем у нашей главной родительской view в поле el: "#main", после этого инициализируем backbone-router и ловим callback от какого нибудь роута, вызываем у главной view методsetView и передаем туда новую дочернюю view. То же самое происходит при клике на ссылку, отрабатывает роутер и в callback-е вставляется новая view.
Как сделать слайд как на ios. Думаю имея контроль над старой view(у родительской есть метод getView) и перед вставкой новой(setView), мы можем добавить старой какой нибудь класс с анимацией, что бы она улетала в какую нибудь сторону, а после вставить новую view.
Вроде, очевидно все:
1. методы типа page.navigation.transform
2. обработчик json ответа после события и размещение по нужным контейнерам.
PS: юзаю jquerymobile.com