I would like to allow users to choose from personalized walking profiles, such as walk by/close to nature point of interests, say parks, river, etc. insteade of just shortest path. Is there a straight forward way to implement this?
the short answer is unfortunately a no.
What I could think of as a workaround is to search inside a buffered route for POIs that suit your needs, and then route via the found POIs.
There is green and quiet routing available for Germany (with an older dataset theough), since there was a research project aiming to do exactly what you proposed.
The project was for two cities (Dresden and Heidelberg), which also get up to date info, see: https://app.meingruen.org.
What they did was assign a “green-ness” and “quiet-ness” factor to all OSM streets in the desired area based on their distance to green areas or huge streets, and possibly some more criteria.
This factor was then used to add a “priority” of sorts to streets with a high “green-ness” factor.
Examples of this can be seen using the “green” and “quiet” factors on the walking profile on maps.openrouteservice.org.