The turn restriction (also turn cost) feature is currently not implemented for the speed-up-mode, and this speed-up-mode is used in GraphHopper Maps. But you can easily download GraphHopper enable the flexibility mode in the config.properties and it will work:
We have surely the plan to make this ...
it selects the path nearest to the point
What happens if the nearest path is not reachable
It will still snap to the nearest path but with some code changes you can avoid this
But the nearest path from the selected point is the one passing near the room just on the other side of the wall.
Would you enter an image of you example. Not sure what ...
All known geocoding search engines that can deal with OSM based data should be listed at https://wiki.openstreetmap.org/wiki/Search_engines
Maybe some of those solutions have an API like the one you mentioned or that fits to your needs.
Are you looking for a solution like http://www.liedman.net/leaflet-routing-machine/ where you can choose between several ...
I don't know of a ready-made library to do this with OSRM, but one of the developers outlined an approach in this mailing list posting: https://lists.openstreetmap.org/pipermail/osrm-talk/2016-June/001225.html
My solution for that would remove vias if the way through them is a
shortest (duration) path. Technically shortest paths are not unique
You can either use Graphhoper One To Many shortest paths using this code:
points of interest
router: L.Routing.graphHopper('your token'),
or just use leaflet-knn to check points of interest within a specific ...