This is better, but still quite confusing. So here are a few comments, as opposed to proper answers:
* You're free to modify the data downloaded from OSM any way you fancy, that's one of the pillars of OSM's openess. Anything you do on your side is fair game.
* If on the other hand you want to modify data "upstream" in the main OSM database, you need to ask about that specifically, in map editing terms. Sounds like what you want is some kind of [boundary][1] ?
* If you're writing both the server and mobile app, it's your choice how much is downloaded preemptively or dynamicaly. Usual tradeoffs apply, "best" choice depends on your use case. The android app can do routing or rendering itself, provided it has the data (regardless of how it got the data).
* There are already quite a few software doing [link text][2] [routing][2] or [rendering][3], both server-side and client-side. Maybe you should have a look at them first.
[1]: http://wiki.openstreetmap.org/wiki/Boundary
[2]: http://wiki.openstreetmap.org/wiki/Routing
[3]: http://wiki.openstreetmap.org/wiki/Rendering