Before adding the missing route=hiking tag to the relation already had lots of flags, but after the tally got too long for me taste, the oddest, thinking or wanting to have a route=ferry on the route, like 1000-2000m SLM.
While I’m not familiar with JOSM, I happen to work on a different database rules validator in real life, and so I know that validation messages written by programmers for programmers can sound really weird. (see below*)
Based on that background, I guess that JOSM does not like that the relation in question (route=mtb) is part of Relation: traccia di collegamento (12601250) | OpenStreetMap (route=hiking). The error message mentioning highways and ferries is probably a smokescreen, since a route=ferry is an exception which may be part of other kinds of routes.
*) The error messages generated by our software are, approximately, “Invalid value ‘location=work’ for condition ‘suit=swimsuit’. The valid values are {beach}”. In human language, that means “You may not come to work in a swim suit”.
Oops, sorry, it’s actually Scanno-Rivisondoli-Scanno or v.v., works both ways, a roundtrip ** but mapped as 2 separate routes. Ignored it in past as a bug in the bug validator but now with all those lights on wanted to know more. And more than many do it on an E-mtb.
** Side question, would the roundtrip=yes apply to the route relations even when mapped separately? Still on the same bike same as these split bus routes for out and in are often split.