I'm paid to work on navigation software:
http://www.project-osrm.org/The answer to your question is: because it's hard to make some of these adjustments on-the-fly and still have reasonably fast queries.
On embedded devices, space and processing power are limited - so you need to perform optimizations to speed things up so it's usable. These optimizations usually limit the flexibility of features like you're requesting. That's a basic trade-off.
For server-side routing solutions, you need response time to be fast so you can scale - again, you need to optimize your data and you lose flexibility. Route calculations are CPU heavy, it gets very expensive to serve lots of users if your route calculations aren't fast.
There's a lot of algorithm research being done in this space - the last 5 years have seen some really smart new approaches. However these haven't been deployed commercially in very many places.
If you'd be happy with 10s of seconds to calculate a route on your phone (offline), then you can have all the flexibility you want :-) This is rarely desirable, so very few implementations are as flexible as you want.