Right now, you can easily make GraphHopper turning around on a ferry. This usually doesn’t work in real life.
Follow the Ferry to the end and use the ferry (or any other road) to return back.
I don’t really have a good idea to prevent this. My first idea was to preprocess every ferry and virtually duplicate the way and create two edges that are tagged as oneways. Then we need to make sure that we use the same edge when placing a waypoint on a ferry. That is not really feasible though.