С помощью intent'ов передавать лучше данные из assets или получение через какие-то алгоритмы. Для тем лучше получать ресурсы темы через getPackageManager().getResourcesForApplication(...) и использовать их.
Модули скачиваемые самим приложением реализуются в лоб, и если знать как работать с сетью и файловой системой — это сделать не сложно. Пример приложений с модулями, принцип которых я описал: ADW/GO Launcher (темы), Dolphin Browser HD (темы и расширения), различные клавиатуры (темы и языки).
С таким подходом как описано можно сделать игру, для которой можно установить уровни через маркет (уровни запакованы в apk). Игра будет искать пакеты с уровнями и запрашивать данные уровней.
Яндекс.Карты под андроид — есть народная карта, не похожая на OSM. Как включить OSM карты?
Чтобы зумилось, нужно для WebView сделать setBuiltInZoomControls(true).