Earlier quoted context omitted.
OpenStreetMap would have more accurate information about the locations of towns etc.
OSM doesn't do elevation. OSM doesn't do geocoding. OSM doesn't do routing. OSM doesn't do 3D. OSM doesn't have a cleaned up dataset of Points of Interest. I love OSM and I use it every day - but I know what it does, what it is good for and what it is not meant to do. Getting a list of towns for the entire world is easy. Solving the issues in the listed by the OP's tumbler requires data that OSM does not have.
True OSM doesn't have that, but there are some public domain datasets available for that, e.g. SRTM.
OSM doesn't do geocoding.
True. OSM is just a database, you'd have to make your own "address ↔ position" algorithm. Which is sorta hard.
OSM doesn't do routing.
OSM is just the database. You can (and people have) make a routing engine on top of that (e.g. http://map.project-osrm.org/ http://maps.cloudmade.com/ ). You can do very specific types of routing (e.g. I figured out how to cross Dublin without passing a pub http://www.kindle-maps.com/blog/how-to-walk-across-dublin-wi... ).
OSM doesn't do 3D.
True.
OSM doesn't have a cleaned up dataset of Points of Interest.
Yes and no. OSM is a database and has lots of Points of Interest, e.g. here's a Starbucks in London ( http://www.openstreetmap.org/api/0.6/node/488443269 ), so it's trivial for someone making a map app to make a database of PoIs that an application can look up.