Hello,
I agree, "highway=path" alone is not enough for a perfect routing:
Further tags should be specified in OSM, but they are optional!!!
surface
smoothness
bicycle
Depending on your bike type (Fastbike, trekking, MTB) it can be difficult to estimate the costs...
But in a montain area, your tip is right:
By using the "elevation" you can avoid paths (or tracks) with very strong uphill / downhill parts.
As example my MTB profile:
assign downhillcost 60
assign downhillcutoff switch consider_elevation 1.5 9
assign uphillcost 100
assign uphillcutoff switch consider_elevation 1.5 9
If "consider_elevation" is false, the highway get elevation cost only when climbing is > 9%, else when climbing is > 1,5%
Also with consider_elevation=false the routing avoids highway with strong uphills or downhills!
Regards